Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新Ember.js rc1中的备份阵列不会传播到视图_Ember.js - Fatal编程技术网

更新Ember.js rc1中的备份阵列不会传播到视图

更新Ember.js rc1中的备份阵列不会传播到视图,ember.js,Ember.js,我正在尝试将一个部分构建的UI升级到最新的Ember.js rc1,由于API的巨大变化,它已经变成了一个非常大的重写工作。那里(和这里)的大多数信息都变得毫无用处。我不得不再次阅读文档好几次,以使部分工作正常,但仍有许多未解决的问题。这是一个大人物。视图不会像在以前版本下那样更新。我遗漏了一些与rerender,{{outlet}}或其他我不知道的东西有关的东西。余烬指南似乎需要更新 模板非常简单: <script type="text/x-handlebars" data-templa

我正在尝试将一个部分构建的UI升级到最新的Ember.js rc1,由于API的巨大变化,它已经变成了一个非常大的重写工作。那里(和这里)的大多数信息都变得毫无用处。我不得不再次阅读文档好几次,以使部分工作正常,但仍有许多未解决的问题。这是一个大人物。视图不会像在以前版本下那样更新。我遗漏了一些与rerender,{{outlet}}或其他我不知道的东西有关的东西。余烬指南似乎需要更新

模板非常简单:

<script type="text/x-handlebars" data-template-name="index">
  <button {{action "addOne"}}>add one</button>
  <ul>
  {{#each item in controller}}
    <li>{{item.title}}</li>
  {{/each}}
  </ul>
</script>

加一
    {{{#控制器中的每个项目}
  • {{item.title}
  • {{/每个}}

单击时,该按钮将向备份数组添加新元素。控制台日志显示阵列正在增长,但模板没有更改。来说明我已经走了多远。有人知道需要添加什么吗?

我修改了您的示例,以突出我们在Ember中使用数组时的事实,即我们正在使用Ember数组(
Ember.A()
Em.A()
,如果您想明确这个事实)。据我所知,您可以使用方法
Em.A().addObject
Em.A().removeObject
来实现使用Ember.Object getter和setter方法(即
.get()
.set()
)的基本功能

为了让Ember应用程序能够正确地观察到,使用Ember getter和setter是很重要的


我修改了您的示例,以突出我们在Ember中使用数组时的事实,即我们正在使用Ember数组(
Ember.A()
Em.A()
,如果您想明确这一事实)。据我所知,您可以使用方法
Em.A().addObject
Em.A().removeObject
来实现使用Ember.Object getter和setter方法(即
.get()
.set()
)的基本功能

为了让Ember应用程序能够正确地观察到,使用Ember getter和setter是很重要的


必须使用addObject和removeObject是正确的,但是仍然可以使用数组的[]语法。从Ember.Array的文档中:
此模块实现类似于观察者的数组行为。这个混音由数组类以及其他希望显示为数组的控制器等拾取。
@martinS_uu是的,我自己发现了这一点,使Em成为一个相当方便的。。。但我不明白这在RC1之前的Ember.js中是如何工作的。绝大多数(现在无法使用)示例都使用标准阵列。我太忙了,没有时间做实验去找出答案,尤其是如果我冒着被过时的API弄得大脑混乱的风险。@martinS是的,我意识到你可以使用[]语法,但使用Em.A()语法有助于使它显式化,我个人更喜欢。。它还向阅读代码的其他人发出通知,指出数组中出现了一些有趣的事情,这可能会有所帮助。@AliceYoung我认为数组在pre2-pre4中的工作原理与在ember-1.0.0.rc1中的工作原理基本相同,但我可能弄错了。我没有乱搞旧东西,所以在那里我帮不了你什么忙。至于过时的API,是的,它可以这样感觉(特别是随着ember的变化),但我认为这些概念会逐渐渗透,这确实使它们值得学习,但这正是我的感受。你是对的,必须使用addObject和removeObject,但数组的[]语法仍然可以使用。从Ember.Array的文档中:
此模块实现类似于观察者的数组行为。这个混音由数组类以及其他希望显示为数组的控制器等拾取。
@martinS_uu是的,我自己发现了这一点,使Em成为一个相当方便的。。。但我不明白这在RC1之前的Ember.js中是如何工作的。绝大多数(现在无法使用)示例都使用标准阵列。我太忙了,没有时间做实验去找出答案,尤其是如果我冒着被过时的API弄得大脑混乱的风险。@martinS是的,我意识到你可以使用[]语法,但使用Em.A()语法有助于使它显式化,我个人更喜欢。。它还向阅读代码的其他人发出通知,指出数组中出现了一些有趣的事情,这可能会有所帮助。@AliceYoung我认为数组在pre2-pre4中的工作原理与在ember-1.0.0.rc1中的工作原理基本相同,但我可能弄错了。我没有乱搞旧东西,所以在那里我帮不了你什么忙。至于过时的API,是的,它可以这样感觉(尤其是随着余烬的改变),但我认为这些概念会渗透进来,这确实使它们值得学习,但这正是我的感受。。