如何在{{input}}助手中分配值,而不是创建绑定?

时间:2018-11-17 06:29:29

标签: html ember.js ember-data

在我的输入助手中,

{{input type="text" value=model.name  enter=(action (action 
'sampleFunction' model))}}

当我更改表格中的值时,我想将值单独发送给操作。但是,model.name也正在更改。

我该怎么做,以使仅“值”改变而模型不改变?

3 个答案:

答案 0 :(得分:4)

答案在某种程度上取决于您的Ember版本。如果您的Ember> = 2.3.1,那么我建议您本机使用<input>

<input value={{password}} oninput={{action 'setPassword' value="target.value"}} />

采取行动:

actions: {
  setPassword(val){
    if(/* only update on some condition */){
        this.set('password', val);
    }
    this.updatePasswordsMatch2();
  }
}

value是呈现的内容,操作的参数是字段+最后键入的char中的内容。

如果您是Ember 1.13x <=> 2.3.0,那么请看一下Ember One way controls,它利用了glimmer直接使用<input>的能力。您需要使用该库,因为有一种解决方法,直到2.3.1才解决一些光标跳转问题。

如果您的<1.13x,请升级?如果您确实是,请回击,我会尽力考虑一下

答案 1 :(得分:1)

Ember具有双向绑定系统。您可以使用Ember的readonly帮助器为组件分配一个值,如下所示:

value=(readonly model.name)

您可以看看this twiddle

答案 2 :(得分:0)

{{input type =“ text” value = model.name oninput =(action'sampleFunction'model.name)}}