错误:$ update不是函数

时间:2015-01-24 14:51:52

标签: angularjs node.js mean.io

我在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页面中的复选框 - 它可以正常工作

因为我的嵌套页面模型正在覆盖父模型

1 个答案:

答案 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函数(因此它未定义)。