灰烬 - 更改模型后重新渲染屏幕

时间:2014-01-29 18:34:56

标签: javascript ember.js

大家好,感谢您抽出宝贵时间回答我的问题。

我将解释我尝试过的方法,而不是提供代码,我将简化我正在尝试解决的问题。

两种型号:

Team:
hasMany ProjectTeams

ProjectTeam:
belongsTo Team
value: int

所有这一切都发生在TeamRoute和team.hbs模板中。

我遍历特定团队的所有projectTeams,并渲染一个textpoint,其value属性绑定到ProjectTeam模型的value属性(这样当其中一个更新时,更改会传播到另一个。)< / p>

所有项目团队都在<table>呈现,每个<tr>对应ProjectTeam

现在,我想按照以下标准为每个团队排序ProjectTeams:

值为0的所有项目团队都应该转到表格的底部。其余的应该在顶部。

这意味着每当我将0输入其中一个空的元素或其中包含其他值时,此记录应自动转到底部,相反,如果我向最初为a的字段添加值值为0,应该移到表格的上半部分(也就是页面应该被重新渲染)。

我做的是我决定向模板发送有序集合。我在TeamController中订购集合,如下所示:

App.TeamController = Ember.ObjectController.extend(
  sortProps: ["value"]
  sortedArray: Ember.computed.sort("content.projectTeams", "sortProps")
)

然后在模板中我得到了:

{{#each projectTeams itemController='projectTeam'}}
  <td>
     {{view Ember.TextField content=this value=value}}
  </td>
{{/each}}

当初始加载页面时,projectTeams正确排序,这意味着值为0的那些位于表的底部。但是,每当我尝试更改其中任何一个的值时,单击的字符将被注册(显示在屏幕上),并且焦点将从文本字段中丢失。我怀疑这是因为,由于对原始数组进行了更改,因此调用控制器(TeamController)并且它正在使用数组。此外,内容在更改发生后没有重新排序,这非常奇怪,因为我认为焦点问题是由于集合被重新排序的事实!...

我的问题是,是否有人可以提供一个jsfiddle,在团队模板中列出projectTeams,每当更改任何projectTeams的值时,整个模板都会被正确地重新呈现?

非常感谢!

0 个答案:

没有答案