Я использую последний код как для Ember, так и для Ember-Data. У меня есть рельсы в качестве моего бэкэнда, поставляющего JSON, который работает нормально. Я хочу иметь возможность фильтровать «активное» свойство модели Ember, используя флажок в моем представлении. Я хочу, чтобы флажок отображал только те данные, которые активны = true, если я устанавливаю флажок. Я НЕ хочу удалять данные из массива, только СКРЫВАТЬ данные. Это то, что у меня сейчас есть, но оно не работает.
Модель:
App.Org = DS.Model.extend({
code: DS.attr('string', { defaultValue: 'N/A' }),
name: DS.attr('string', { defaultValue: 'N/A' }),
source: DS.attr('string', { defaultValue: 'N/A' }),
status: DS.attr('string', { defaultValue: 'N/A' }),
type: DS.attr('string', { defaultValue: 'N/A' }),
note: DS.attr('string', { defaultValue: 'N/A' }),
financial_Flag: DS.attr('string', { defaultValue: 'N/A' }),
expense_Flag: DS.attr('string', { defaultValue: 'N/A' }),
revenue_Flag: DS.attr('string', { defaultValue: 'N/A' }),
created_At: DS.attr('string', { defaultValue: 'N/A' }),
updated_At: DS.attr('string', { defaultValue: 'N/A' }),
active: function() {
var status = this.get('status');
var active = (status === 0) ? false : true;
console.log("status: " + status + " | active: " + active);
return active;
}.property('status')
}).reopenClass({
collectionUrl: '/orgs',
resourceUrl: '/orgs/%@',
resourceName: 'org'
});
Контроллер массива:
App.OrgsController = Em.ArrayController.extend({
isEmpty: function() {
console.log("############ App.OrgsController.isEmpty called");
return this.get('length') === 0;
}.property('length'),
toggleActive: function(){
console.log("############ App.OrgsController.isActive called");
return this.filterProperty('active', value).forEach(this.removeObject, this);
}.property('@each.active'),
init: function() {
this.set('content', App.store.findAll(App.Org));
},
refreshOrgs: function() {
this.set('content', App.store.findAll(App.Org));
},
getInactiveOrgs: function(){
this.set('content', App.store.find(App.Org, {status: "0"}));
}
});
На мой взгляд, у меня есть:
<label>
isActive
{{view Ember.Checkbox checkedBinding="App.OrgsController.toggleActive" disabledBinding="App.OrgsController.isEmpty" }}
</label>
App.store.filter
вместо свойства filterProperty контроллера? - person dechov   schedule 21.09.2012