我想弄清楚「Ember方式」做一個排序,當你沒有一個數組控制器依賴。沒有ArrayController排序hasMany關係
我創建了一個jsbin說明情況,
雖然我沒有能夠得到它的工作jsbin(雖然它在我的項目工作):
http://emberjs.jsbin.com/mused/2/edit?html,js
FIX - 由於主銷這jsbin工作:http://emberjs.jsbin.com/quyawitu/5/edit
基本上,說你有兩種模式: 「豪斯醫生」 和 「窗口」
房子的hasMany窗口。窗戶屬於一棟房子。
現在說你是在看起來像這樣一個模板:
<script type="text/x-handlebars" data-template-name="index">
<ul>
{{#each house in model}}
<li>
<div class="name">
House name: {{house.name}}
</div>
<div>
First Window: {{house.firstWindow}}
</div>
</li>
{{/each}}
</ul>
</script>
在這個模板,我只是在鏈接到一個協會,窗戶沒興趣 - 不是,我找的第一個窗口(具體來說,第一個窗口,由createdAt排序)。
使用this question的答案,我使用了ArrayProxy和可排序的mixin在我的House模型上創建一個計算屬性以獲取此引用。我想知道是否有更通俗的「Ember方式」來做到這一點。
我用了一個jsbin模板,它必須有更多的過時的話,我以爲 - 感謝固定的! 我覺得'windowsByCreatedAt'函數對我來說仍然感覺有點笨拙。在數組代理上使用可排序的mixin並沒有太大的區別 - 這裏有一個jsbin:http://emberjs.jsbin.com/quyawitu/5/edit。我可能只是假設在這個問題沒有時應該有一個完美的,漂亮的解決方案。 – myowz
由於窗口在特定情況下需要異步,所以它大多笨重,我會拋棄等待異步更新的懶惰方法。 – Kingpin2k
我把它稱爲懶惰的唯一原因是因爲我更喜歡使用承諾,但它仍然有效,並且不會崩潰這種情況(firstWindow暫時未定義,但對模板沒有問題) – Kingpin2k