更改模板上的数组不会在路由/控制器上更新

时间:2016-10-24 10:52:09

标签: ember.js

我需要多个输入字段来填充整数数组。

这是我的模板和路线:

// Route
import Ember from 'ember';

export default Ember.Route.extend({
  setupController() {
    this.controller.set('myArray', [1]);
    // ...
  }
}

// Template
<!-- ... -->
{{#each myArray as |element|}}
  {{input type="number" value=element}}
{{/each}}

<p>Length: {{myArray.length}}</p>
<p>First item: {{myArray.[0]}}</p>

首次呈现模板时,输入字段的值为1First item也显示1,但当我将输入值更改为其他值时,First item仍显示1

如果我用一组对象替换int数组,我只能设法让它工作,例如this.controller.set('myArray', [{value: 1}]然后在模板上使用属性value,但如果可以,我宁愿避免这种情况。是否可以通过一系列整数执行此操作?

1 个答案:

答案 0 :(得分:2)

  

是否可以使用一组int来执行此操作?

有点儿。它适用于对象,因为您正在改变对象中的属性。 对于数字,它们是不可变的,所以它并不完全相同。你需要做的是替换数组中的项目。

我建议像你一样使用对象数组。