javascript - Ember - 计算属性(这是一个数组)在将项目添加到数组时不获取更新值

标签 javascript ember.js

正在开发 ember 应用程序 (1.11),并且遇到计算属性在代码中更新时未获取更新值的问题。代码如下(已精简,仅显示相关片段)。

当迭代“数据”(这是一个计算属性)时,我会在 UI 上显示内容列表。然后我从下拉列表中进行选择,我发送一个操作,触发该计算属性并将内容添加到该列表中。当我执行此操作一次时,我会在 UI 上获取所有更新的列表或迭代,但是当我再次进行选择以增加列表/迭代时,计算属性将采用列表的初始值,而不是更新的值,我只是添加了一项,因此未显示正确的详细信息。

我不明白出了什么问题。我也无法创建一个旋转,因为它有很多代码并且在旋转中陷入了错误。

父组件- ehbs

{{pax-detail list=list}}

父组件 - js

list: function(){
  return this.get('arr')   //This arr comes from route/controller via query string in url
}.property('arr')

Pax 详细信息组件 - ehbs

{{pax-select action="changed"}}
{{ages ageData=data}}

Pax 详细信息组件 - js

countChanged: '',
actions: {
 changed: function(e){
  this.set('countChanged',e.target.value)
 }
},
data : function(){
  var arr = this.get('list')
  // doing lot to manipulation - constructing arr/object


if(this.get('countChanged')){
  arr.pushObject({}) // basically modifying the initial arr
  return arr
} else {
  return arr
}

}.property('list','countChanged')

Pax 选择组件 - ehbs

<select>
 <option>0</option>
 <option>1</option>
 <option>2</option>
</select>

Pax 选择组件 - js

change: function (e) {
   this.sendAction('action',e)
 }

最佳答案

如果您的示例(更改其内容,但数组相同),则您的 arr 不会更改

尝试下一个表单 .property('arr.[]').property('arr.length')

或在修改数据时手动调用.notifyPropertyChange('list')。 事实上你的例子只是 列表:Ember.compulated.alias('arr')

关于javascript - Ember - 计算属性(这是一个数组)在将项目添加到数组时不获取更新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38335861/

相关文章:

javascript - 如何使用angular js中的值获取范围数组的索引

ember.js - 标志性的 JS 无法使用 Ember 正确渲染

在 ember 中选择不加载数据 - 有工作示例吗?

javascript - jQuery 滚动到水平网站的下一部分

javascript - 如何在 jQuery 中移动 HTML 元素?

javascript - 检查 Angular HTML 中的 bool 真值

ember.js - 在 Ember.js 中创建灯箱路线

javascript - 如何使用 JavaScript 将名称属性分配给动态选择选项

ember.js - 创建自定义 Emberjs 服务错误 : Attempting to inject an unknown injection: `service:titleService`

javascript - Angular 运行循环