嗨,我是初学者,我试图解决自己,但没有成功。
看看代码:
// works
window.App = Em.Application.create();
window.Core = Em.Namespace.create({ Beta: Em.Namespace.create() });
App.Router.map(function() {
this.route("registration", {
path: "/beta/registration"
}); // also Core.Beta.registration tried
});
App.IndexRoute = Em.Route.extend({
redirect: function() {
this.transitionTo('registration'); // also Core.Beta.registration tried
}
});
// never is called
Core.Beta.RegistrationController = Em.Controller.extend();
Core.Beta.RegistrationView = Em.View.extend({ template: Em.TEMPLATES['beta.regisration'] });
Core.Beta.RegistrationRoute = Em.Route.create({
setupController: function() {
console.log(arguments);
},
setupView: function() {
console.log(arguments);
}
});
所有内部Core.Beta永远不会在ember pre4中被调用...使用Core.Beta我可以生成可重用的微应用程序以用于其他项目。你知道ember如何在路由器中注入该应用程序,以便它可以在命名空间内创建实例。
答案 0 :(得分:0)
您需要在App本身中创建命名空间
window.App = Em.Application.create();
window.App.Core = Em.Namespace.create({ Beta: Em.Namespace.create() });