我有一个指令,使用keypup来防止任何空值,最小值必须始终为1,它还绑定到ng-model和ng-change而不依赖于指令。
查看
<input class="form-control numberOfUsesMustNotNull" type="number" placeholder="Qty" ng-model="qty" ng-change="updatePrice (qty)" />
指令
.directive('numberOfUsesMustNotNull', function() {
return {
restrict: 'C',
link: function(scope, element, attrs) {
element.bind('keyup', function($event) {
// disallow number of uses to be zero
if(element.val() === '' || element.val() === 0){
element.val(1);
}
});
}
}
});
这里的问题是当指令中的条件被触发时,我的控制器中的updatePrice
函数不会触发。如何从指令触发控制器$scope.updatePrice
?我想我不应该只设置DOM值,而是可以访问指令中的$scope.qty
。
尝试这个小提琴http://jsfiddle.net/67s2ktfz/,退回数字,它会改回一个但总数不会更新。