2013-08-03 3 views
0

У меня есть список должностей, я отображающих обычным способом:emberjs itemController ломают arrayControllers шаблон

App.PostsController = Ember.ArrayController.extend() 

{{#each controller}} 
    {{title}} 
    {{body}} 
{{/each}} 

Теперь я пытаюсь добавить возможность голосовать на столбах. Так что я попытался добавить это к PostController и ссылаться на него в шаблоне так:

App.PostsController = Ember.ArrayController.extend(
    itemController: 'post' 
) 

App.PostController = Ember.Controller.extend(
    upvote: -> 
    # some code to upvote 
) 

{{#each controller}} # Note, also tried each post in controller 
    {{title}} 
    {{body}} 
    <a {{action upvote}}>Upvote</a> 
{{/each}} 

Это, кажется, полностью взломан существующий шаблон, однако. HTML и CSS все прочитаны, я вижу, что json все еще возвращается с сервера, но контент больше не отображается. Кажется, что добавление itemController нарушает привязку с ArrayController.

Я чувствую, что мне не хватает важного шага, но я не уверен, что это такое, и руководство по API не дает никакого дополнительного направления.

+0

Как я вижу, вы исправили опечатку, неужели она все еще не работает? – intuitivepixel

ответ

0

Проблема была в том, что PostController был определен как обычный контроллер, а не ObjectController, поэтому он не проксировал вызовы базовой модели.

App.PostController = Ember.ObjectController.extend(
    upvote: -> 
    # some code to upvote 
) 
0

Я думаю, если вам не нужен itemController (так как он не определен), вы должны удалить его, а событие upvote должно быть уловлено в PostsController.

Редактировать

Вашего комментарий заставил меня видеть, что у вас есть опечатка, должно быть:

App.PostController = Ember.Controller.extend(
    upvote: -> 
    # some code to upvote 

Надеется, что это помогает.

+0

Что вы имеете в виду, это не определено? – DVG

+0

@DVG, отредактировал мой ответ, я думаю, у вас есть опечатка, ваш itemController должен быть 'PostController', а не' PostsController', имеет смысл? – intuitivepixel

+0

Gotcha. Да, у меня была опечатка в вопросе, хотя это не в моем коде. Однако проблема все еще сохраняется. Особенно любопытно, что правильное количество строк отображается на странице, все divs для каждого отдельного элемента визуализируются, но внутри ничего нет. – DVG

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