После того, как я изменил значение переменной в контроллере и скомпилировал директиву, я по-прежнему получаю старое значение самой переменной вместо нового. В идеале, я думаю, что для кода ниже я должен получить результат как «Новая ценность», но я получаю «Старую ценность». Пожалуйста помоги!Как получить измененные переменные области видимости после компиляции директивы
Мой контроллер:
app.controller("MainCont",['$compile', function($scope,$http,$compile){
$scope.var1 = false;
$changeName = function(){
$scope.var1 = true;
angular.element(someElement).append($compile("<new-dir></new-dir>")($scope));
}
}]);
Моя Директива
app.directive("newDir",function(){
var directive = {
restrict: 'E',
controller: 'MainCont',
link: function(scope,element){
if(!scope.var1){
console.log("Old Value");
}else{
console.log("New Value");
}
}
}
return directive;
})
$ компиляции отсутствует, как инъекции на ваш код контроллера. –
Зачем нужно компилировать, изменяя значение области. Есть и другой способ отслеживать это. Пожалуйста, объясните свое первоначальное требование. –
В функции привязки директивы вы называете первый аргумент 'scope'; но в следующем выражении 'if' вы используете' $ scope'. – georgeawg