好像我的应用程序中有断开连接。
我认为我遵循了正确的命名约定,但是当我为某条路线创建一个控制器时,它会杀死我在路线中加载的模型......它在未定义的情况下会被取消模板和控制器。
我的代码在这里: https://github.com/mgenev/Full-Stack-JS-Boilerplate/tree/master/public/ember
我试图按照指南说明一切,我不知道发生了什么。如果有人能帮我解决这个问题,我会非常感激。
更新
我是否使用ArrayController或Object对象似乎无关紧要。不管我做什么,当我做的时候:
App.ArticlesCreateRoute = Ember.Route.extend({model:function(){ 返回this.store.createRecord('文章',{title:' mah title', pageContent:''}); ,setupController:function(controller,model){ this.controller.set(' model',model); }});
当我做setupController时,我实际上最终得到了未定义的模型:
function(controller, model) { this.controller.set('article', model); }
我可以访问控制器中的文章对象并查看 -
答案 0 :(得分:0)
我目前只看到一个控制器,所以我猜错了。
如果您的控制器由模型支持,它应该扩展ObjectController
,如果它由集合支持,它应该扩展ArrayController
,如果它没有任何支持,它应该扩展Controller
。 ObjectController
和ArrayController
代理请求从控制器到模型/集合。
因此,如果您有一个由集合支持的ArticlesController,则应该像这样定义
App.ArticlesController = Ember.ArrayController.extend({
});
如果你正在做的只是在控制器上设置模型,那么包含setupController是没有意义的,这是setupController的默认实现。你也不应该这样做。控制器,你应该使用发送到方法中的引用。
App.ArticlesCreateRoute = Ember.Route.extend({
model: function () {
return this.store.createRecord('article', {title: 'mah title', pageContent: ''});
}
});
并将控制器更新为ObjectController
App.ArticlesCreateController = Ember.ObjectController.extend({
....
});