У меня есть проблема на данный момент с директивой, тогда как некоторые значения области, заданные в родительском контроллере, не установлены, когда директива пыталась получить к ним доступ. Это связано с тем, что директива вызывается до того, как вызов AJAX вернул любые данные. Есть ли какая-нибудь возможность, чтобы моя директива дождалась, пока эти данные будут установлены до продолжения?Угловая директива, выполняемая до извлечения данных
angular.module('vt.directives', [])
.directive('personType', [function() {
return {
restrict: 'A',
replace: true,
scope: {
data: '='
},
template: '<div class="{{data.property}}"</div>',
link: function (scope, elm, attrs) {
console.log(scope.personType);
}
};
}]);
<div ng-controller="parentcontroller">
<div personType data="jsonobject"></div>
</div>
здесь мой parentcontroller в получении данных от службы и переходя к persontype директивы, но директива persontype не ждет до тех пор пока JSONObject является извлечением из службы, так что это вызывает много вопросов.
Какое вред, если он не ждет? – Rayon
Я думаю, что данные доступны в '' scope.data'' не в '' scope.personType'' в вашей директивной ссылке. –
Когда вы выполняете 'scope: {data: '='}' в директиве, вы настраиваете двухстороннюю привязку, так как первый комментарий говорит, что нет никакого вреда, если она не ждет, b/c привязка должен снова обновляться при получении данных. Ваш оператор console.log будет работать только один раз (он не будет печатать ответ сервера, даже если вы использовали имя правой переменной). Вы показываете нам весь шаблон, в котором используется директива? Если есть больше, вы можете создавать дочерние области, которые могут вызвать такую проблему. –