Ember.JS值绑定在Action中不起作用

时间:2015-11-24 14:34:16

标签: javascript ember.js

我正在尝试在我的Ember应用程序中正确地运行值绑定。绑定适用于输入,例如,当我在输入字段中键入文本时,它显示在“您的目标:”旁边。但是,当我单击“下一步”时,它没有正确显示该值。

这是一个带有我的问题的JSBIN:http://emberjs.jsbin.com/buxega/edit?html,js,console,output

目标路线

import Ember from 'ember';

export default Ember.Route.extend({
  goal: '',
  actions: {
    nextStep: function() {
      console.log('Goto next step: ', this.get('goal'));
    }
  }
});

模板

<section>
  <div class="pod__content">
    Your Goal: {{goal}}
    {{input type="text" value=goal}}
  </div>
  <footer>
    <button {{action 'nextStep'}} class="btn btn--red">Next Step</button>
  </footer>
</section>

2 个答案:

答案 0 :(得分:1)

您在控制器中设置值{{goal}},而不是在路径中。

import Ember from 'ember';

export default Ember.Controller.extend({
  goal: '',
  actions: {
    nextStep: function() {
      console.log('Goto next step: ', this.get('goal'));
    }
  }
});

http://emberjs.jsbin.com/nabeqakicu/1/edit?html,js,console,output

如果要将值发送到路线,可以执行以下操作:

<button {{action 'nextStep' goal}} class="btn btn--red">Next Step</button>

你在行动中得到它:

export default Ember.Route.extend({
  goal: '',
  actions: {
    nextStep: function(goal) {
      console.log('Goto next step: ', goal);
    }
  }
});

答案 1 :(得分:0)

定义属性的另一种方法

export default Ember.Route.extend({
    setupController: function(controller, model) {
            this._super(controller, model);

            controller.setProperties({
                foo: 'bar'
            });
     }
});