Существует функция, в которой мы используем вложенные угловые директивы.Я добавляю упрощенный пример, где поведение можно наблюдать.
Вот HTML:
<body ng-app="myapp">
<div>
This is the first directive
<first-directive my-val="9">
</first-directive>
</div>
</body>
И JavaScript:
var app = angular.module("myapp",[]);
app.directive("firstDirective",function(){
return {
template:'<second-directive val-new={{myVal}}></second-directive>',
scope:{
myVal:'@'
},
//transclude:true,
link: {
pre:function(scope,elem,attr){
scope.myVal=scope.myVal+"1";
}
}
}
});
app.directive("secondDirective",function(){
return{
scope:{
valNew:'@'
},
link:{
pre:function(scope,elem,attr){
console.log(scope.valNew);
}
}
}
});
В консоли яполучить результат обновления, выполненного в методе pre, но в html я получаю старое значение.
Консоль печатает: "91" html dom содержит:
<second-directive val-new="9" class="ng-isolate-scope"></second-directive>>
Пожалуйста, помогитеЯ понимаю, почему наблюдается это различие и как обеспечить согласованность этих двух местсвязанные переменные области видимости первой директивы.Поэтому в каком-то другом месте, когда меняется myVal
, я пытаюсь заставить вторую директиву реагировать на изменения.