2015-01-24 2 views
0

Я вложенная страниц дерева в 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(); 
}; 

нормально, мой proplem: потом нажмите на флажок и вызвать функцию pageActive - У меня есть ошибка в поджигатель (потому что nestet объект не имеет функции обновления):

Error: page.$update is not a function 

, но затем я нажимаю на CheckBox не в nestet страниц - это работает

, потому что моя вложенная модель страницы перезапись родительской модели

+2

Вы вызываете функцию $ update() для объекта, о котором мы ничего не знаем. Единственное, что мы знаем о том, что браузер говорит вам: $ update не является функцией. Отправьте соответствующий код. Скажите нам, почему вы думаете, страница. $ Update() должна работать. –

+0

Я добавил описание, которое еще нужно? – Maiti

+0

Вы все еще не объясняете нам, почему вы думаете, что функция $ update() является действительной функцией для вызова? Где это определено? –

ответ

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» вы перезаписать все, что с нг -repeat child, у которого нет функции $ update (следовательно, она не определена).

+0

да, вы правы, у ребенка нет функции $ update, но renderer.html включает себя и перезаписывает childPage – Maiti

Смежные вопросы