首页 > 解决方案 > 如何在 {{input}} 帮助器中分配值而不是创建绑定?

问题描述

在我的输入助手中,

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

当我更改表单中的值时,我想将值单独发送到操作。但是,model.name 也发生了变化。

我应该怎么做才能只有“价值”改变而模型不改变?

标签: htmlember.jsember-data

解决方案


答案在某种程度上取决于您的 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是渲染的内容,动作的参数是字段中的任何内容+最后输入的字符。

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

如果你<1.13x,升级?如果您确实是,请回复评论,我会尝试思考一些事情


推荐阅读