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