Ember.js 筛选余烬数据中的子记录
我无法在ArrayController中筛选对象的子记录 我的模型结构如下:Ember.js 筛选余烬数据中的子记录,ember.js,ember-data,ember-cli,Ember.js,Ember Data,Ember Cli,我无法在ArrayController中筛选对象的子记录 我的模型结构如下: var Shop = DS.Model.extend({ name: DS.attr('string'), products: DS.hasMany('product') }); var Product = DS.Model.extend({ name: DS.attr('string'), shop: DS.belongsTo('shop') }); 商店有很多产品,而产品属于商店
var Shop = DS.Model.extend({
name: DS.attr('string'),
products: DS.hasMany('product')
});
var Product = DS.Model.extend({
name: DS.attr('string'),
shop: DS.belongsTo('shop')
});
商店有很多产品,而产品属于商店。我想根据Ember.TextField筛选每个家长的childrecords。如果我只根据父记录拥有的属性使用regexp筛选父记录,则筛选工作正常
productSearchResults: function() {
var productSearchTerm = this.get('productSearchTerm');
var regExp = new RegExp(productSearchTerm,'i');
Ember.Logger.log('productSearchTerm', productSearchTerm);
var filteredResults = this.map(function(shop){
var products = shop.get('products');
return products.filter(function(product){
regExp.test(product.get('name'));
});
});
// all items are returned always..
return filteredResults;
}.property('products.@each', 'productSearchTerm')
编辑
我试图在这里使用Promissions source:,但似乎从未访问过productSearchResults属性。我没有从这里得到任何日志输出。在模板中,我在filteredProducts上循环,但那里什么都没有。如果有任何关联,我使用的是余烬1.5.0和余烬数据1.0.0-beta.7+canary.b45e23ba
productSearchResults: function() {
var _that = this;
var productSearchTerm = this.get('productSearchTerm');
var regExp = new RegExp(productSearchTerm,'i');
this.store.find('shop').then(function(shops) {
var promises = shops.map(function (shop) {
return Ember.RSVP.hash({
shop: shop,
products: shop.get('products').then(function (products) {
return products.filter(function (product) {
return regExp.test(product.name);
});
})
});
});
Ember.RSVP.all(promises).then(function (filteredProducts) {
_that.set('filteredProducts', filteredProducts);
});
});
}.property('products.@each', 'productSearchTerm')
尝试一下这个链接[[1]:我试图修改上面的链接,但还没有成功。我甚至不能在函数中记录任何内容,也不能向Ember Inspector显示任何承诺。