Javascript ng重复中的ng模型不更新参考对象
在我的控制器中,我有一个对象:Javascript ng重复中的ng模型不更新参考对象,javascript,angularjs,json,angularjs-ng-repeat,angularjs-material,Javascript,Angularjs,Json,Angularjs Ng Repeat,Angularjs Material,在我的控制器中,我有一个对象: $scope.selectedMap = { map: '', mapDesc: '', stops_json: "", stopLength: [] }; 此对象中的stops_json键包含另一个对象,如下所示: { desc: "PRG-BUD-HR-PAY", stop1:"DEPT", stop2:"ACCT", stop3:"ACCT2", stop4: 158, stop5:"CCT", stop6:"CCA",
$scope.selectedMap = {
map: '', mapDesc: '', stops_json: "", stopLength: []
};
此对象中的stops_json键包含另一个对象,如下所示:
{
desc: "PRG-BUD-HR-PAY",
stop1:"DEPT",
stop2:"ACCT",
stop3:"ACCT2",
stop4: 158,
stop5:"CCT",
stop6:"CCA",
stop7: 156
}
我在ng repeat中使用这个子对象,并为每个停止生成输入:
<p class="row col-md-12">
<strong>Description: </strong>{{ selectedMap.stops_json.desc }}
</p>
<div class="row col-md-12 float-left">
<md-input-container ng-repeat="stop in selectedMap.stops_json" ng-if="!$first" ng-model="stop" class="col-md-12">
<label>Stop {{ $index }}:</label>
<input class="col-md-8 float-left mapStops" ng-model="stop" aria-label="Route Stop Description">
</md-input-container>
</div>
说明:{{selectedMap.stops\u json.desc}
停止{{$index}}:
我的问题是,当我更改输入标记的值时,停止\u json对象不会更改。我的印象是,这是应该的,因为这是建模的对象。我显然错了,有人能教我吗?首先要提几个问题:
- 如果选择将对象迭代与
一起使用,则依赖于ng repeat
的$first
是不确定的(即,不保证按键定义顺序迭代)ng If
- 在
上应用ng repeat
绑定以使其组成部分可编辑是不正确的。每个项目的模型应改为应用ng模型
ng模型
stops\u json
模型
基本上,您需要确保ng repeat
中的input
元素直接绑定到您的stops\u json
模型,以便任何编辑都会影响它
另外,请注意,所有数值属性都应该使用
输入的type=“number”
变体,否则任何编辑都会将值设置为字符串。谢谢,这非常有用!今天上午我将试一试,并向大家汇报,现在我有时间深入研究这个问题,我必须说这是一个非常好的答案。再次感谢你!