我正在使用一个令人满意的指令(本讨论中的代码:https://github.com/angular/angular.js/issues/528)来更新我的模型。我也希望在后端更新(我正在使用ngResource
)。
我的模板是循环遍历person in people
并为每个人:
<span contenteditable ng-model="person.name" ng-blur="updatePersonName(person)">{{person.name}}</span>
我原以为那个人会是blur
上的更新变量,但当我console.log
updatePersonName
时,我会得到奇怪的输出:
Resource {id: 1, name: "Bob the Builder", created_at: "2015-04-23T14:57:28.999Z", updated_at: "2015-04-28T11:42:05.701Z", $$hashKey: "object:4"…}
$$hashKey: "object:4"
created_at: "2015-04-23T14:57:28.999Z"id: 1
name: "Bob the Builder With Modifications"
updated_at: "2015-04-28T11:42:05.701Z"
__proto__: Resource
注意名称之间的差异(此输出的第二部分是展开视图)
该指令使用:
element.bind("blur", function() {
scope.$apply(read);
});
当我在我的update
资源上调用Person
时,它会发送原始模型但似乎在本地更新模型,这样如果我再做一次修改,它就会发送我的第一个更改并落后一次迭代