我需要将路由 categories
中的 View 和 Controller 插入到多个其他路由中,而不是将它们嵌套在该 categories
路由中(因为我想保持 URL 独立) .
因此,我使用我获取的 Controller 将 categories
模板渲染到主 application
socket topbar
中我现有的categories
路线。
App.PostRoute = Ember.Route.extend({
renderTemplate: function() {
this.render();
this.render('categories', {
outlet: 'topbar',
into: 'application',
controller: this.controllerFor('categories')
});
}
});
当我访问categories
路线时,一切正常!我什至可以从那里浏览其他路线。但是,如果我首先访问任何其他路由,则似乎不会创建 categories
Controller :
Assertion failed: The controller for route 'categories'' could not be found. Make sure that this route exists and has already been entered at least once. If you must intialize the controller without entering a route, use `generateController`.
很好的警告:)我希望所有框架都那么智能!所以我试图手动生成该 Controller ...但如何生成?
我尝试过:
App.CategoriesRoute.create().generateController('categories', App.Category)
和静态版本:
App.CategoriesRoute.generateController('categories', App.Category)
这似乎不是正确的做法。请问有什么帮助吗?
最佳答案
这与我们的 friend IntuitivePixel 一致。
App.PostRoute = Ember.Route.extend({
renderTemplate: function() {
this.render();
//assigning the model...
var context = ['a','b','c','d'];
var instance = Em.generateController(this.get('container'),'categories',context);
instance.set('content',context);
this.render('categories', {
outlet: 'topbar',
into: 'application'
});
}
});
您可以在模型 Hook 本身中执行此操作。
关于ember.js:如何使用generateController初始化 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18310033/