Вот мои контроллеры:Ember действие на itemController не работает
App.DesignPhotosController = Ember.ArrayController.extend({
itemController: 'designPhoto'
});
App.DesignPhotoController = Ember.ObjectController.extend({
needs: ['designPhotos'],
toDelete: false,
actions: {
toggleDelete: function() {
this.set('toDelete', !this.get('toDelete'));
}
}
});
И мой шаблон:
{{#each}}
<ul>
<li>
{{title}}
{{#if toDelete}}
<button class="restore" {{action "toggleDelete"}}>Restore</button>
{{else}}
<button class="delete" {{action "toggleDelete"}}>Delete</button>
{{/if}}
</li>
</ul>
{{/each}}
Однако, когда я нажимаю на кнопку «Удалить», я получаю сообщение вошли:
Error: Nothing handled the action 'toggleDelete'. If you did handle the action, this error can be caused by returning true from an action handler in a controller, causing the action to bubble.
насколько я могу сказать, что я делаю это правильно, немного я пытался заставить его различными комбинациями:
Добавление
target=this
к действиюДобавление {{#each элемент в контроллере}} и
target=item
Изменение действия к действию {{toggleDelete это}}, с и без кавычек
Ничего не работает.
Может ли кто-нибудь указать, что я делаю неправильно?
Кажется, что работает здесь http://emberjs.jsbin.com/xedol/1/. Код тоже кажется хорошим, единственное, что может случиться, это то, что контекстный контроллер для вашего шаблона может быть не «designPhotos» (вы можете регистрировать контроллер за пределами каждого и проверять, не так ли это или нет с помощью {{log controller}}) –
Mysterious - только что открыл мой код, чтобы попробовать его запустить и теперь его работа! Возможно, это было что-то испорченное в кеше firefox. – aquavitae