我尝试构建指令,我想在按元素点击时更改模型。某种复选框...... 这是我的代码
mainApp.directive('subCategory', function(){
return{
restrict: 'A',
scope: {
model: '=?ngModel'
},
link : function(scope, element){
scope.model = true;
element.click(function () {
if (element.hasClass('active')) {
element.removeClass('active');
scope.model = false;
} else {
element.addClass('active');
scope.model = true;
}
});
}
}
});
我尝试通过观察包含所有复选框的ng-model属性的对象,在父控制器中查看此复选框的组。
mainApp.controller('Filter',['$scope', function ($scope) {
$scope.data = {}
$scope.$watchCollection('data', function(newNames, oldNames) {
console.log('changed');
});
}]);
当我通过scope.model = true;
定义属性时,它可以正常工作,但是当我在点击时更改scope.model
时出于某些原因它不会影响data
对象并观看不会&# 39;工作。
有人可以告诉我为什么吗?
谢谢!
答案 0 :(得分:0)
在指令中更改
scope: {
model: '=?ngModel'
},
到
scope: {
model: '=ngModel'
},
如上所述,当您将ngModel传递给声明
的链接函数时 require:'?ngModel'