我的路由结构:
App.ready = function() {
App.Router.map(function() {
this.resource('contacts', function() {
this.resource('contact', function() {
});
});
});
}
现在,在contactsController
我的回复和add
操作过渡到联系路线。我想在add
上调用contactController
方法。
我已将needs: ['contact']
放在我的ContactController
上,但后来收到此消息:
<App.ContactsController:ember197> needs controller:contact but it does not exist
当我使用controllerFor
( 已弃用)时,我也会收到错误:
this.controllerFor('contact').add();
因此,一旦实际转换到适当的路线,Ember.js RC1似乎只会创建控制器(和其他相关实例)。
有没有办法解决这个问题。
答案 0 :(得分:2)
因此,一旦实际转换到适当的路线,Ember.js RC1似乎只会创建控制器(和其他相关实例)。
有趣 - 我之前曾想过ember生成的控制器,但不会猜测。
有解决方法吗?
解决方法是手动定义App.ContactController。这样的事情会起作用:
App = Ember.Application.create({});
App.Router.map(function() {
this.resource('contacts', function() {
this.resource('contact', function() {
});
});
});
App.ContactController = Ember.Controller.extend({
add: function() {
alert('App.ContactController.add() was called!');
}
});
App.ContactsController = Ember.Controller.extend({
needs: ['contact'],
add: function() {
this.get('controllers.contact').add();
}
});