Ember.js では、 を使用して、ember Web サイトの例のようにEmber.ArrayController
、特定のデータ コレクションにアクセスできることを知っています。
MyApp.listController = Ember.ArrayController.create();
$.get('people.json', function(data) {
MyApp.listController.set('model', data);
});
次のようにハンドルバーでアクセスします。
{{#each person in MyApp.listController}}
{{person.firstName}} {{person.lastName}}
{{/each}}
しかし、私がやりたいのは、javascript で this にアクセスすることですか? より具体的には談話で、ユーザーのバッジを取得します。user-badges.js.es6
コントローラー:
export default Ember.ArrayController.extend({
sortProperties: ['badge.badge_type.sort_order', 'badge.name'],
orderBy: function(ub1, ub2){
var sr1 = ub1.get('badge.badge_type.sort_order');
var sr2 = ub2.get('badge.badge_type.sort_order');
if(sr1 > sr2) {
return -1;
}
if(sr2 > sr1) {
return 1;
}
return ub1.get('badge.name') < ub2.get('badge.name') ? -1 : 1;
}
});
ユーザーのバッジのリストを取得するにはどうすればよいですか? Discourse.UsersBadges ArrayController の呼び出しが機能していないようです。
import UserBadges from 'discourse/controllers/user-badges';
for(var badge in UserBadges){
console.log(badge);
}
EmberJS がどのように機能すると想定されているか、または Discourse がどのように機能するように設計されているかを理解する上で問題が発生しているのかどうかはわかりません。