我找到了this相关主题,答案建议注意模型更改而不是选择更改。但在我的例子中,"模型"是列表中对象的一部分。是否为列表中的每个对象初始化$watch
是正确的方法?
选择
<li data-ng-repeat="obj in main.list track by $index">
<select data-ng-change="main.changeStatus(obj)" data-ng-model="obj.status">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
</li>
changeStatus
我需要更新对象或已经在change方法中接收到正确的对象。
main.changeStatus = function(obj) {
var r = new Resource(obj);
...
r.$save({...}, function (savedObj) {
...
});
}
解决此问题的正确方法是什么?
感谢
编辑:我想我没有提出正确的问题。
发布的代码没有达到我想要的效果,因为更改方法在模型更新之前执行,因此我将不正确的/旧对象发送到后端。现在有几种方法可以解决这个问题
Idealy我得到了改变方法的新对象,但我不知道如何。
编辑2:我试着写一个小提琴来说清楚,但它在那里工作。我需要深入研究我的代码,因为问题似乎在其他地方。
答案 0 :(得分:3)
让您澄清问题,您有5个下拉菜单, 每个你有3个选项a,b,c, 你想以清晰的方式做什么? 如果你的意思是在main.list中列出对象,说“更新对象或者已经在更改中收到了正确的对象”,那么你的代码就可以了。