Я использую (удивительный) Restangular, и я сталкиваюсь с чем-то, что заставляет меня использовать scope.$parent
(не удивительно), и я не хочу этого использовать. Кажется, хотя мой контроллер является родительской областью для области моей директивы, привязка выделенной области =
оценивается до того, как мой родительский контроллер будет выполнен.Угловая директива изолировать область до родительского связывания undefined
Со следующим 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
функции, оценивая свойство scope, которое должно было быть связано с областью моего родителя Операция возвращается 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: "="
}
}
});
Как я идти о решении этого ??
Благодаря
, кажется, работает хорошо для меня см. здесь http://jsbin.com/komikitado/1/edit, как вы устанавливаете значения в $ scope.parentValue? – sylwester
@sylwester Извините, я просто изменил вопрос: я использую Restangular в своем контроллере (глупо, чтобы не добавлять это в первую очередь, я знаю) – ZvL