2

我已经在 ember 中设置了一个视图,并像这样在页面上呈现它

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();
    }
});

任何想法为什么会发生这种情况?

4

2 回答 2

1

您缺少示例工作的路线:http: //jsbin.com/IGIvuhe/2/edit

添加这个,它会工作:

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

希望能帮助到你。

于 2013-11-11T19:45:12.100 回答
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' });
  });
});
于 2013-11-11T19:46:33.560 回答