【问题标题】:How to get values from dynamically generated form elements如何从动态生成的表单元素中获取值
【发布时间】:2019-09-07 01:26:06
【问题描述】:

在 canJs 中,我们使用 can-value 将元素的值绑定到控制器。

//In controller
scope.attr("parameter") // It will give the value
//In mustache
<input type="text" can-value="parameter"/>

但是我们如何将动态生成的组件的值绑定到控制器?我尝试了以下方式

//In mustache
{{each arrayValues}}
<input type="text" can-value="parameter{{@index}}"/>
{{/each}}

但以下是未定义的

scope.attr("parameter1") 

【问题讨论】:

    标签: canjs canjs-view canjs-component


    【解决方案1】:

    目前尚不清楚您使用的是哪个版本的 CanJS。看起来您正在使用 mustache ......这意味着您正在使用 CanJS v2.x ......它在很久以前就被弃用了 - 你真的应该升级。

    无论如何,您想要的是拥有您的项目的can.List,并且当您遍历该列表时,您会引用列表中的项目。它看起来像这样:

    scope.attr('parameters'); //-> ["foo", "bar"]
    
    {{#each parameters}}
      <input type="text" can-value="{{.}}"/>
    {{/each}}
    

    如果您使用的是 v2.3,则应改用 {($value)}:

    {{#each parameters}}
      <input type="text" {($value)}="{{.}}" />
    {{/each}}
    

    请注意,我使用 CanJS v2.x 已经有好几年了 - 所以上面的内容可能不是 100% 准确,但它应该能让你接近。要点是您要实际读取您正在迭代的数组中的项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-15
      • 1970-01-01
      • 1970-01-01
      • 2018-05-21
      相关资源
      最近更新 更多