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

前端之家收集整理的这篇文章主要介绍了javascript – Angular通过另一个组件获取新范围前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在建造一个角度为1.5.5的component based app项目

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

这部分代码如下:

    nodeEnter.each(() => {
        let childScope = this.$scope.$new();
        childScope.test = "test";
        let compiled = this.$compile('

这部分代码完美无缺.

这是我的组件

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

但是当我进入mycomponent组件时.我无法获得正确的$范围.

我检查了$id,并了解childScope.$id在Mycomponent $scope中.$id = 1

我知道我可以使用$scope.$parent但是我会创建不合适的$scope,并且它在循环中并不是真的很受欢迎.

那么如何获得相同的$scope?

最佳答案
在您的情况下,您不需要使用$scope.$new(),因为$compile已经在创建一个新的范围实例.

解决问题的更简单方法是使用querySelector,我想做类似下面的代码可以帮助你:

newScope = angular.element(document.querySelector(“#myId”)).isolateScope();

这样您现在应该能够通过newScope传递数据.

猜你在找的JavaScript相关文章