我想要一个类似于 ng-model 的属性指令。我只想另外将一个输入字段值绑定(bind)到一个范围变量(只是在一个方向输入字段 ->范围变量)。所以我刚刚尝试了这个指令,但无论如何我都无法调用该指令。
脚本:
.directive('passivemodel', function () {
return {
restrict: "A",
scope: {
passivemodel: '='
},
link: function (scope, element, attrs) {
scope.$watch('passivemodel', function(newPassivemodel, oldPassivemodel) {
console.log("passive model", newPassivemodel);
});
}
};
})
html:
<input data-passivemodel="keyword">
编辑:
嗯……基于 vilo20 的回答,我遇到了一个非常奇怪的行为。
虽然这段代码运行良好:
<input data-ng-model="keyword" data-passivemodel="keyword">
这个没有(注意 passivemodel 的值):
<input data-ng-model="keyword" data-passivemodel="keyword2">
.当然,我已经在 Controller 中定义了变量。
Controller :
.controller('SearchController', function($scope, $routeParams, $search) {
$scope.search = new $search();
$scope.keyword = "";
$scope.keyword2 = "";
})
Edit2:这是一个 fiddle http://jsfiddle.net/HB7LU/12107/
最佳答案
试试这个:
.directive('passivemodel', function () {
return {
restrict: "A",
scope: {
passivemodel: '='
},
link: function (scope, element, attrs) {
console.log("passive model", scope.passivemodel);
$scope.$watch('passivemodel', function(newPassivemodel, oldPassivemodel) {
//put your logic when passivemodel changed
});
}
};
})
希望对你有帮助
编辑:这是一个 plunker http://plnkr.co/edit/T039I02ai5rBbiTAHfzv?p=preview
关于javascript - Angularjs 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29228761/