在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")
答案 0 :(得分:0)
目前尚不清楚您使用的是哪个版本的CanJS。看来您正在使用胡须...这意味着您正在使用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%准确,但是应该可以使您接近。要点是要从要迭代的数组中实际读取项目。