Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 创建控制器可防止模型进入模板_Ember.js - Fatal编程技术网

Ember.js 创建控制器可防止模型进入模板

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

我正在构建我的第一个ember应用程序(ember cli),对此我感到困惑

我有以下路径,它成功地基于模型中的属性选择了一个视图:

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分钟接受冻结到期之前!