Ember.js 创建控制器可防止模型进入模板
我正在构建我的第一个ember应用程序(ember cli),对此我感到困惑 我有以下路径,它成功地基于模型中的属性选择了一个视图:Ember.js 创建控制器可防止模型进入模板,ember.js,Ember.js,我正在构建我的第一个ember应用程序(ember cli),对此我感到困惑 我有以下路径,它成功地基于模型中的属性选择了一个视图: import Ember from 'ember'; export default Ember.Route.extend({ afterModel: function(tournament) { var state = tournament.get('state'); if (state === 0) { this.transit
import Ember from 'ember';
export default Ember.Route.extend({
afterModel: function(tournament) {
var state = tournament.get('state');
if (state === 0) {
this.transitionTo('tournaments.setup', tournament);
} else if (state === 1) {
this.transitionTo('tournaments.play', tournament);
} else if (state === 2) {
this.transitionTo('tournaments.complete', tournament);
}
}
});
然后我想在tournames.setup
页面中添加一些功能。因此,我添加了一个控制器(位于tournames/controllers/setup.js
:
import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
start: function() {
var that = this;
var model = this.get('model');
model.set('state',1);
model.save().then(function(tournament) {
that.transitionToRoute('tournaments.play', tournament);
});
}
}
});
从启用我创建的启动
操作以更改模型并重定向到所需路线的意义上来说,这是有效的。但这也有防止模型进入设置.hbs
模板的效果,如下所示:
<h3>{{name}}</h3>
<h4>Setup!</h4>
<p>{{state}}</p>
<p>{{eventDate}}</p>
<button {{action "start"}} class="btn btn-primary">Start</button>
{{name}
设置!
{{state}}
{{eventDate}
开始
如果controllers/tournaments/setup.js
文件不存在,则会显示模型的属性。不知何故,创建此文件(当我转到setup
路径时不会调用)会阻止模型到达模板
我也尝试过显式地定义路由setup.js
route,但是没有帮助
如果有必要,我正在使用FixtureAdapter。有什么想法吗?我缺少一个概念吗?如果你想在你的控制器上自动设置模型,你应该扩展
Ember.ObjectController
,而不是tournames/controllers/setup.js
中的Ember.controller
,并成功测试在15分钟接受冻结到期之前!