2013-11-11 4 views
2

Я настроил вид в уголек и вынес его на странице, как этотView Controller не вызывался

App.TestView = Ember.View.extend({ 
    template: Ember.Handlebars.compile('<h1>Heading</h1>') 
}); 

{{view App.TestView}} 

Но если я не создать контроллер ничего не происходит

App.TestController = Ember.Controller.extend({ 
    init: function() { 
     console.log('CONTROLLER HERE'); 
     this._super(); 
    } 
}); 

Любые идеи, почему это происходит?

ответ

1

Когда вы создаете представление вручную (например, вы делаете), он не использует тестовый контроллер. Если вы нажмете тестовый маршрут, он будет использовать соответствующий тестовый контроллер и тестовое представление.

В вашем случае, основываясь на ваших комментариях ниже, вы, вероятно, захотите настроить некоторые маршруты и использовать их для управления соответствующими контроллерами и представлениями.

Проверьте это: http://emberjs.com/guides/routing/defining-your-routes/

Может быть что-то вроде этого

App.Router.map(function() { 
    this.resource('gallery', { path: '/gallery/:gallery_id' }, function() { 
    this.resource('photo', { path: 'photo/:photo_id' }); 
    }); 
}); 
+0

Итак, я не могу использовать контроллер с ним? Это всего лишь маленький виджет. ИЛИ я должен использовать компоненты для этого? – iConnor

+1

@ connor.js, у компонента также нет связанного контроллера по умолчанию, какие данные вам нужен, чтобы ваш контроллер удерживался? – intuitivepixel

+0

Ну, фактическая цель, чтобы поговорить с представлением слайд-шоу, когда я нажимаю на это представление, но я думаю, что вы можете сделать это только через связь между контроллерами. – iConnor

1

Вы пропускаете маршрут для вашего примера работы: http://jsbin.com/IGIvuhe/2/edit

Добавьте это, и он будет работать:

App.Router.map(function(){ 
    this.route("test", {path: '/'}); 
}); 

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

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