我在商店的 <iframe width="560" Cannot GET /uri.vurl%20%7C%20youtube
height="315" src="uri.vurl | youtube" frameborder="0" allowfullscreen></iframe>
配置中指定了过滤器:
filters
仅在我在商店中明确调用Ext.define('Record', {
extend: 'Ext.data.Model',
fields: [{
name: 'value',
type: 'number'
}]
});
Ext.create('Ext.data.Store', {
id: 'store',
model: 'Record',
filters: [
function(item) {
return item.get('value') > 2;
}
],
sorters: [{
property: 'value',
direction: 'DESC'
}],
data: [{
value: 2,
}, {
value: 1
}, {
value: 3
}]
});
Ext.create('Ext.view.View', {
store: Ext.data.StoreManager.lookup('store'),
tpl: new Ext.XTemplate(
'<tpl foreach=".">',
'<div class="record">{value}</div>',
'</tpl>'
),
itemSelector: '.record',
emptyText: 'No records',
renderTo: Ext.getBody()
});
时才会应用它。 filter()
未设置且默认为filterOnLoad
,因此必须过滤商店。如何保持商店始终被过滤(无论何时执行CRU操作和加载后)?
答案 0 :(得分:1)
要实现这一点,需要在添加和更新事件时向商店添加监听器:
listeners: {
add: function(store) {
store.filter();
},
update: function(store) {
store.filter();
}
},