(AngularJS指令)更改输入模糊的模型值

时间:2015-09-02 08:21:07

标签: javascript angularjs input model onblur

我有一个ng-model输入元素,我想输入整数,正数,但是在空输入的情况下将模型值设置为" 1"。

我已创建了一个指令,但在输入模糊后,它不会将模型值更改为" 1":

angular.module('myapp', [])
.controller('MainCtrl', function ($scope) {
  $scope.item = { qty: 2 };
})
.directive('cartQty', function () {
  return {
    require: 'ngModel',
    link: function (scope, elem) {
        scope.$watch('item.qty', function (newValue, oldValue) {
            var arr = String(newValue).split('');
            if (arr.length == 0) return;
            if (newValue == 0) scope.item.qty = 1;
            if (isNaN(newValue)) scope.item.qty = oldValue;
        });
        elem.on('blur', function () {
            var value = String(elem[0].value);
            if (value.length == 0) scope.item.qty = 1;
        });
    }
  };
});

这是JSFiddle的实例:http://jsfiddle.net/buh86w8n/2/

有没有人可以帮助我?

2 个答案:

答案 0 :(得分:3)

create table test( name varchar (10), date_engaged nvarchar (20), timestamp2 nvarchar (20), LOS nvarchar (20) ) insert into test (name,date_engaged) values ('JJ','12/09/2010') update test set timestamp2=CAST(DATEADD(month,0,dateadd(month,datediff(month,0,getdate()),-1)) AS DATE) update test set LOS=DATEDIFF(day,date_engaged,timestamp2)/365.25 超出角度范围。

要更改elem.on('blur', function(){ // code..})事件中的范围值,您必须致电elem.on blur

这是working plunkr

elem.on模糊事件

$apply()

答案 1 :(得分:0)

或者你可以$watch获得该输入,如果它为空则将其设置为1。

所以它从2开始,如果你删除它,它将被设置为1,否则将其设置为任何数字。

以下是您的代码编辑:

http://jsfiddle.net/buh86w8n/4/