我有这个具有价值的控制器。
App.xcontroller = SC.ArrayController.create({
...some code...
array_values = [],
..more code...
})
现在我在某个地方看到了这个 valueBinding
valueBinding: 'App.xController.array_values',
当我更改数组中的值时,视图不会更新。但是当我在控制器中执行以下操作时:
var array_values = this.get('array_values');
... adding / removing values to the array....
if (x_values.contains(x)){
x_values.removeObject(x)
} else {
x_values.pushObject(x);
};
this.set('array_values', array_values.copy());
绑定有效,视图得到更新。但只能使用 copy()。我不想复制数组,恕我直言,这效率不高。我只是想让 valueBinding 知道内容已经改变..
x 值只是一堆整数。
我想要这个的原因:我想更改 SegmentedItemView 的值键。我想更改活动按钮。但是我不知道我有多少分段视图,所以我认为我将每个生成的分段视图的值绑定到某个公共数组并更改该公共数组以能够更改所有分段视图上的活动按钮。由于每个按钮都代表一个具有唯一键的项目,因此它可以正常工作。除了我每次都必须复制数组。