我有一个ng-repeat工作正常。我应用了一个可编辑的x-editable。页面很多,应用了分页。我正在使用ng-table。然而,当使用jquery x-editabe(通过其ajax方法)更新某些记录时,angularjs,ng-repeat会停止更新该特定内容。为什么呢?
<td title="'Price'" data-type="number" my-x-editable data-sortable="'Price'" filter="
{'Price':'text'}">{{product.Price}}
</td>
<td title="'Vendor'" data-sortable="'Vendor'" filter="{'Price':'text'}">
<a href="#" id="VendorID" class ="xEditable" data-type="select" data-pk="{{product.ID}}" data-source='@Url.Action("ProductVendors")' data-value="{{product.Vendor.ID}}" data-url ="@Url.Action("UpdateAttributes")" title ="@Resources.OA_Attribute_Vendor">{{product.Vendor.Name}}</a>
</td>
如果我不使用x-editable进行更新,一切都能正常工作。当我使用x-editable时,当我转到下一页时,特定列不会使用ng-repeat进行更新。
答案 0 :(得分:4)
对于在AngularJS之外进行的任何更改(如DOM操作等),需要调用$ apply,以便AngularJS可以在视图中选择并反映这些更改。
这是一个有用的链接:http://jimhoskins.com/2012/12/17/angularjs-and-apply.html
答案 1 :(得分:2)
你需要调用$ scope。$申请Angular来了解在Angular自己的上下文之外所做的更改。