我想为ng-model分配值,如果它是空的。我已经为控制器的ng-model输入分配了默认值,但是当用户进行更改以删除该值并使输入为空时,我想将默认值分配给ng-model。
例如。
控制器:
App.controller('mainController',['$scope', function($scope) {
$scope.assignOne= 16;
}]);
查看:
<input ng-model="assignOne" ng-change="changeMe()"/>
现在,输入值变为16.
如果用户进行了更改并手动删除了该值16,那么我想在changeMe()函数中使用默认值1而不是空字符串。
注意: 我可以检查空ng模型并覆盖控制器中ng-model的值。但是,有没有更好的使用方式,角度提供的东西。
我是AngularJS的新手。
答案 0 :(得分:1)
尝试$watch
如下
$scope.$watch(
"assignOne",
function handleChange( newValue, oldValue ) {
console.log( "assignOne:", newValue );
if(newValue == '') {
newValue = 16;
}
}
);
答案 1 :(得分:0)
满足您样本的另一种解决方案:
App.controller('mainController',['$scope', function($scope) {
$scope.assignOne= 16;
// function called by " ... ng-change="changeMe() "
$scope.changeMe = function() {
if ($scope.assignOne == '') {
$scope.assignOne = 1;
}
}
}]);
PS:对于上一个答案,有一点点遗漏:它不会更改“assignOne”var,而只会更改本地副本,它会在函数调用结束时丢失...通过更改来纠正它$ scope.assignOne!
PS 2:2解决方案很好,但可以解决不同的要求:
$ watch就像是模型对象的触发器,如果你想在导航器端检查业务规则,它是最有效的
ng-change对于处理一些不是严格规则的交互更有意思......
可以使用两种方式......