【发布时间】:2015-05-14 23:45:40
【问题描述】:
我正在使用(很棒的)Restangular,我遇到了一些迫使我使用scope.$parent(不是很棒)的东西,我不想使用它。似乎即使我的控制器是我的指令范围的父范围,= 隔离范围绑定也会在我的父控制器执行之前进行评估。
使用以下 HTML:
<div ng-controller="myController">
<div x-my-directive x-some-value="parentValue"></div>
</div>
还有以下指令:
myApp.directive("myDirective", function () {
return {
restrict: 'A',
link: function (scope, elem) {
console.log(scope.someValue); // Logs 'undefined' :(
},
scope: {
someValue: "="
}
}
});
还有以下控制器:
myApp.controller("myController", function($scope, allMyValues) {
allMyValues.getList().then(function(parentValue){
$scope.parentValue = parentValue;
});
}
如我的指令link 函数所示,评估一个应该绑定到我父级范围属性的范围属性会返回undefined。但是,当我将指令 link 函数更改为以下内容时:
myApp.directive("myDirective", function () {
return {
restrict: 'A',
link: function (scope, elem) {
setTimeout(function() {
console.log(scope.someValue); // Logs '{1: number_1, 2: number_2}'
}, 2000);
},
scope: {
someValue: "="
}
}
});
我该如何解决这个问题??
谢谢
【问题讨论】:
-
对我来说似乎工作正常,请看这里jsbin.com/komikitado/1/edit你如何在 $scope.parentValue 中设置值?
-
@sylwester 抱歉,我刚刚修改了问题:我在控制器中使用了 Restangular(我知道一开始就不添加它是愚蠢的)
标签: javascript angularjs angularjs-directive restangular