0

在我的控制器中,我有一个变量:

$scope.myVar = { "id": 13459045, "firstName": "Joe", "lastName": "McCarthy", "createdBy": 0, "status": "active", "dollarValue": 0 } 

在我的页面中,我将输入字段映射到变量:

<input ng-model="myVar.id" class="checknumberrange" />

“checknumberrange”类是解析输入值以在输入字段和模型中设置数值的指令。在处理此指令时,变量 $scope.myVar 中的一些元素将从变量中删除。

$scope.myVar = { "firstName": "Joe", "lastName": "McCarthy", "createdBy": 0, "status": "active", "dollarValue": 0 } 

在指令的情况下,我发现当没有提供返回值时,值被删除了,但你会认为它会将那个键的值设置为 null,而不是完全从变量中删除配对。这发生在我项目的其他部分,当您在输入字段中写入时,该值会返回(可能会再次被删除),但我不明白为什么会发生这种情况。使用 Angular 1.2.0 rc3,以下 html:

<input ng-model="myVar.dollarValue" ng-blur="myVar.dollarValue=myVar.dollarValue.toFixed(2)" />

不允许我更改值。更改值将立即从变量中删除配对,如果您将焦点放在输入字段上,然后在其他地方,第一次,该字段将从“0”更新为“0.00”,第二次将导致配对被删除。

我真的很想了解为什么要删除配对,这样我就可以防止这种情况在我的工作中发生。

4

1 回答 1

1

Angular 会解析您输入的内容ng-blur,但它无法处理所有 javascript。尝试使用在您的控制器(plnkr)中创建的函数:

$scope.onBlur = function()
{
  $scope.myVar.dollarValue = Number($scope.myVar.dollarValue).toFixed(2)
}

HTML:

<input ng-model="myVar.dollarValue" ng-blur="onBlur()" />
于 2013-10-31T22:48:38.743 回答