我正在尝试将我的应用程序移至使用“插座”的新 Emberjs 路由器组件。
参见参考文献:http ://emberjs.com/guides/outlets/和这个: http ://codebrief.com/2012/07/anatomy-of-an-ember-dot-js-app-part-i-redux-路由和出口/
我如何理解它的工作原理:当您使用字符串连接插座时,会发生以下事情
- Ember 在 App 上查找视图定义并实例化它
- Ember 在 App 上查找控制器定义并创建它的实例
- 像这样将两者相互挂钩:设置视图控制器属性和设置控制器视图属性
--- 在最后一步之前运行良好。我似乎无法在控制器上设置视图属性。
JSBin 这里:http: //jsbin.com/ekekir/40/edit
相关代码:
应用路由器
App.Router = Ember.Router.extend({
root: Ember.Route.extend({
state1: Ember.Route.extend({
route: '/state1',
connectOutlets: function (router) {
router.get('applicationController').connectOutlet('state1')
}
})
})
});
控制器和视图
App.State1View = Ember.View.extend ({
templateName: 'state1',
submit: function () {
this.get('controller').doLogView();
return false;
}
});
App.State1Controller = Ember.Controller.extend({
doLogView: function () {
console.log('Getting controller view:');
console.log(this.get('view'));
}
});
最后它返回一个大空值。
我做错了什么还是这就是它应该的方式?
顺便说一句:这是使用 ember-1.0.pre。