Backspace使输入不使用ng-model填充

时间:2016-11-07 18:27:25

标签: javascript angularjs html5

我有一个像这样的输入标签:

<input ng-model='number'>

和一堆填充此输入的按钮:

<a class='btn' ng-click='pop(1)'>1</a>

这是pop功能:

$rootScope.pop = function(number) {
    $rootScope.number = $scope.number + number;
}

按钮和所有按钮都填充模型并正确输入,但是如果我使用键盘上的退格键来擦除输入中当前的内容,则单击该按钮将不再填充并显示输入字段。

我已经尝试为按下退格键时使用事件监听器并使用自定义函数处理退格,但这不起作用。关于为什么会发生这种情况的任何想法?

2 个答案:

答案 0 :(得分:1)

在添加数字之前添加预检查,以查看它是否为null或未定义。删除输入字段时,var numberundefined""

$rootScope.pop = function(number) {
    // !== Compares two expressions to determine if they are not equal in value or of the same data type
    if($rootScope.number !== undefined && $rootScope.number !== null){
        //Added "" just to make sure the number is treated like a string
        $rootScope.number = "" + $rootScope.number + number;
    } else {
        $rootScope.number = "" + number;
    }
}

在代码中将$rootScope.number定义为string

$rootScope.number = "";

答案 1 :(得分:0)

修正了上述问题。 显然这是由于角度范围问题。
我创建了一个对象并将对象的属性设置为数字,而不是使用$ rootScope.number。
例如: $rootScope.obj.number

<小时/> 使用对象的属性修复了问题,只需要对角度范围做一点阅读。