gpt4 book ai didi

javascript - Angular 通过另一个组件获取新范围

转载 作者:搜寻专家 更新时间:2023-11-01 04:23:04 24 4
gpt4 key购买 nike

我正在构建一个 component based app使用angular 1.5.5

的项目

我正在使用 d3js 创建一些 .floating-node 并为每个创建一个 new $scope 并附加到一个编译组件中。

这部分代码看起来像:

    nodeEnter.each(() => {
let childScope = this.$scope.$new();
childScope.test = "test";
let compiled = this.$compile('<mycomponent></mycomponent>')(childScope);
(this.mainContainer).append(compiled);
});

这部分代码工作得很好。

这是我的组件

export default class Mycomponent {
constructor($scope) {
console.log($scope.test); // undefined
console.log($scope.$parent.test); // test
}
}
Mycomponent.$inject = ["$scope"];

但是当我进入我的 mycomponent 组件时。我无法获得正确的 $scope

我检查了 $id 并了解到 childScope.$idMycomponent $scope.$id += 1

我知道我可以通过 $scope.$parent 解决问题,但我会创建不受欢迎的 $scope,而且它在循环中并不是很受欢迎。

那么我怎样才能得到相同的 $scope 呢?

最佳答案

好像有误会。 .component 将始终创建它自己的、独立的作用域,您只是不在组件中使用 $scope。如果您认为在您的情况下绝对有必要,请使用 .directive。不过,我建议适本地重新设计您的组件。

关于javascript - Angular 通过另一个组件获取新范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39168913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com