AngularJS指令检测传入的模型属性更改
我有一个单独作用域的指令。我想检测作为父范围变量的属性的更改 到目前为止,我有以下几点:AngularJS指令检测传入的模型属性更改,angularjs,directive,Angularjs,Directive,我有一个单独作用域的指令。我想检测作为父范围变量的属性的更改 到目前为止,我有以下几点: var app = angular.module("app", []); app.controller("ctrl", function($scope, $timeout) { $timeout(function() { console.log("called"); $scope.isReady = true; $scope.$apply(); }, 2000);
var app = angular.module("app", []);
app.controller("ctrl", function($scope, $timeout) {
$timeout(function() {
console.log("called");
$scope.isReady = true;
$scope.$apply();
}, 2000);
});
app.directive("car", function($log) {
return {
scope: {
make: "=carMake"
},
restrict: 'E',
template: "<strong ng-bind='make'></strong>",
link: function(scope, elem, attrs) {
scope.$watch(attrs.shouldDo, function(value) {
var val = value || null;
if (val) {
$log.info(scope.$eval(attrs.shouldDo));
}
}, true);
}
}
});
var-app=angular.module(“app”,[]);
应用程序控制器(“ctrl”,函数($scope,$timeout){
$timeout(函数(){
控制台日志(“调用”);
$scope.isReady=true;
$scope.$apply();
}, 2000);
});
应用指令(“汽车”,功能($log){
返回{
范围:{
make:“=carMake”
},
限制:'E',
模板:“”,
链接:功能(范围、要素、属性){
范围.$watch(attrs.shouldDo,函数(值){
var val=值| | null;
if(val){
$log.info(范围$eval(属性shouldDo));
}
},对);
}
}
});
如果我将作用域设置为
false
它可以工作,但是我需要它与一个独立的作用域一起工作。只需将作用域
部分写为:
scope: {
make : "=carMake",
shouldDo: '='
},
固定演示
指令示例:
app.directive("car", function($log) {
return {
scope: {
make: "=carMake",
shouldDo: '='
},
restrict: 'E',
template: "<strong ng-bind='make'></strong>",
link: function(scope, elem, attrs) {
scope.$watch(function() {
return scope.shouldDo
},
function(newValue, oldValue) {
var val = newValue || null;
if (val) {
$log.info(scope.shouldDo);
}
});
}
}
});
当使用HTML时:
<car car-make="make" should-do="{{isReady}}"></car>
演示2
<car car-make="make" should-do="{{isReady}}"></car>