用一个属性预填充输入,但将ng-model设置为不同的属性
Angular.js - prefill input with one property, but set ng-model to different property
我有我的输入:
input(ng-model='amount' ng-init='amount = (amount == 0) ? total : amount')
所以我需要将用户输入的值保存为amount
,然而,当页面加载时,如果amount
恰好为零,那么用total
预填充它。
一切都很好,但是,我有一个间隔运行来刷新来自服务器的数据,所以当刷新发生时,我猜测模型值amount
发生变化,并且它将输入设置为"0"(如果amount
为零)。我该如何解决这个问题?
您的问题是使用ng-init
,首先,它是不适合使用它的任何其他除了混叠ng-repeat特殊属性,如$index
, $first
等…在每个摘要周期中都不会监视Ng-init 'Ed表达式的更改。此外,视图值更新是在ng-model更新时完成的。所以你不会看到它在之后的消化循环中被评估。不要使用ng-init
,只需将控制器中的ng-model
本身设置为默认值即可。
$scope.amount = $scope.amount || $scope.total;
或者你也可以使用ng-model的getter setter选项
创建新的变量inputAmount,绑定到你的输入。
input(ng-model='inputAmount' ng-init='inputAmount = (amount == 0) ? total : amount')
你可以在控制器的模型上使用可选赋值。
$scope.myModel = $scope.myModel || $scope.prefilled
我创建了codeopen的例子:http://codepen.io/skymk/pen/vOyPWB?editors=101
相关文章:
- 从 Javascript 中设置 ng-model name
- Toggle Switch在包含ng model和ng repeat之后不进行切换
- 在Angularjs中,我如何使用ng repeat、ng model和ng click来动态更改内容
- 当与之关联的 ng-model 为 false 时,Angularjs 复选框值不会取消选中
- 角度控制器不绑定服务对象属性 ng-repeat
- ng-model 绑定到选择标签生成的空默认值
- 对象不能在angularjs ng-model中访问
- 为什么 HTML 中的 Value 属性在与 AngularJS 中的 ng-model 一起使用时不起作用
- ng-repeat不绑定ng-model对象数组
- AngularJS:ng-model 绑定在使用 jQuery 更改时不会更新
- 为什么 AngularJS 在使用 ng-model 时不会在文本框上设置长度属性
- 在Angularjs中,“ng-model”属性在验证中的意义是什么?
- 当jquery属性选中复选框时,Angular ng-model不更新
- 输入值属性在angular.js的ng-model中不起作用
- Angular的ng-model控制器对属性是正确的,但对元素却不行
- 如何将nq-slider属性指令添加到Angular中含有ng-model的元素中
- ng-model将JavaScript对象属性设置为array
- 使用 jquery 将 ng-model 动态添加到输入框属性
- AngularJS - 为什么我的复选框没有与我的 ng-model 属性保持状态
- 用一个属性预填充输入,但将ng-model设置为不同的属性