我在mongo db:
的mean.io角度控制器中嵌套了树形页面{"_id":"54a67318250272254669fa93","name":"test page 1","parent":null,"active":true,"children":[{"_id":"54a67326250272254669fa94","name":"test page 1.1","parent":"54a67318250272254669fa93","active":false,"children":[{"_id":"54a67330250272254669fa95","site":"54a6730a250272254669fa92","name":"test page 1.1.1","parent":"54a67326250272254669fa94","active":false,"children":[]}]}]}
然后我这样表现出来:
<ol>
<li data-ng-repeat="page in pages" data-ng-include="'renderer.html'">
</li>
</ol>
它是一个renderer.html:
<input type="checkbox" data-ng-model="page.active" data-ng-change="pageActive(page)" />
<ol data-ng-model="page.children">
<li data-ng-repeat="page in page.children" data-ng-include="'renderer.html'">
</li>
</ol>
这是控制器中的代码
$scope.pageActive = function (page) {
if (!page.updated) {
page.updated = [];
}
page.updated.push(new Date().getTime());
page.$update();
};
好吧,我的问题:
然后我点击复选框并调用pageActive函数 - 我在firebug中有错误(因为nestet对象没有更新函数):
Error: page.$update is not a function
但是我点击了不在nestet页面中的复选框 - 它可以正常工作
因为我的嵌套页面模型正在覆盖父模型
答案 0 :(得分:0)
尝试更改
<li data-ng-repeat="page in page.children" data-ng-include="'renderer.html'"></li>
到
<li data-ng-repeat="childPage in page.children" data-ng-include="'renderer.html'"></li>
我不知道你在页面中指的是什么,而是通过在page.children&#34;中使用data-ng-repeat =&#34;页面。你用ng-repeat孩子覆盖它的任何东西,它没有$ update函数(因此它未定义)。