jen*_*gar 2 angularjs angularjs-directive angularjs-scope
所以我有一个指令,里面有一个复选框.我需要在复选框的值更改时进行Web服务调用.如何在单击时获取该复选框的值?我希望复选框仅限于指令的范围.
myModule.directive('test', function() {
return {
restrict: 'A',
replace: true,
scope:{},
template:
'<div>'+
'<input type="checkbox" ng-click="toggleRoomLock()" name="lockRoom" value="lock" ng-model="lockRoom">'+
'</div>',
link: function(scope, element, attrs) {
scope.toggleRoomLock = function(){
//GET VALUE OF CHECKBOX HERE
};
}
}
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用该值,scope.lockRoom但我未定义.有什么建议?
最简单的方法是ng-click从模板中删除属性并在模型上放置监视.将链接功能更改为:
function (scope, element, attrs) {
scope.lockRoom = false; // initialize to unchecked
scope.$watch('lockRoom', function (value) {
// value will contain either true or false depending on checked state
});
}
Run Code Online (Sandbox Code Playgroud)
$watch允许您收听模型上的更改(基本上是添加的对象scope).
示例plunker(记录到控制台的值).