私は次のようにEmber.jsアプリを持っています(andyMatthews.netのこの記事から借りました):
意見:
<script type="text/x-handlebars" >
{{view App.UserTextField}}
{{#each App.recentUsersArray.reverse tagName="ul"}}
<li>{{this}}</li>
{{/each}}
</script>
アプリ:
App = Ember.Application.create();
App.UserTextField = Ember.TextField.extend({
insertNewline: function(){
var term = this.get('value');
App.recentUsersArray.pushObject(term);
}
});
App.recentUsersArray = Em.ArrayController.create({
content: ['noelle', 'evan', 'mason'],
reverse: function(){
return this.get('content').toArray().reverse();
}.property('content.@each').cacheable(),
});
ただし、ビューからApp.recentUsersArray.reverseにパラメーターを渡したい(たとえば、返される反転アイテムの数を設定するため)。コントローラ関数でパラメータを受け入れることはできますが、ビューから渡すことができないように見えるため、問題が発生しました。パラメーター3をコントローラーの逆関数に渡したい場合は、次のようなものを想像していました。
{{#each App.recentUsersArray.reverse(3) tagName="ul"}}
<li>{{this}}</li>
{{/each}}
しかし、それはエラーをスローします(キャッチされていないエラー:解析エラー)...考え?最終的な目標は、長さごとに異なる関数(つまり、、など)を作成せず<ul>
に、それぞれ要素の数が異なる3つのを作成することです。また、3つの異なるコントローラーを作成したくありません。これは、それぞれが同じデータソースを使用し、スライスが異なるためです。App.recentUsersArray.reverseThree()
App.recentUsersArray.reverseFive()
<ul>