我是ExtJs的新手,我正在努力弄清楚如何在ExtJs中使用回调函数。我使用的ExtJs版本是4.2.1 基本上我想链接两个函数的执行:
func1:function(){ }
func2:function(){ }
这样func2()只在func1()完成后才开始执行。
从我到目前为止所读到的内容来看,我需要使用回调函数,但对于我的生活,我无法得到它。
这是我的代码:
filter: function (filters, value) {
if (Ext.isString(filters)) {
filters = {
property: filters,
value: value
};
}
var me = this,
decoded = me.decodeFilters(filters),
i = 0,
length = decoded.length;
for (; i < length; i++) {
me.filters.replace(decoded[i]);
}
Ext.Array.each(me.filters.items, function (filter) {
Ext.Object.each(me.tree.nodeHash, function (key, node) {
if (filter.filterFn) {
if (!filter.filterFn(node)) node.remove();
} else {
if (node.data[filter.property] != filter.value) node.remove();
}
});
});
me.hasFilter = true;
console.log(me);
},
clearFilter: function() {
var me = this;
me.filters.clear();
me.hasFilter = false;
me.load();
},
isFiltered: function() {
return this.hasFilter;
},
filterNavAdminSTByUserName: function (nameValue) {
this.clearFilter();
this.filter([{
property: 'userName',
value: nameValue
}]);
}
我的问题是this.filter()在this.clearFilter()之前执行;如何在this.clearFilter()完成后强制执行this.filter()?
提前致谢!
答案 0 :(得分:0)
经过一番深思熟虑之后,我终于弄明白了回调函数是如何工作的。 所以这是解决方案:
clearAndFilter: function (nameValue) {
var me = this;
me.filters.clear();
me.hasFilter = false;
me.load({
scope: me,
callback: function () {
// filter the store
me.filter('userName', nameValue);
}
});
},
filterNavAdminSTByUserName: function (nameValue) {
this.clearAndFilter(nameValue);
}
很高兴回答我在这里的第一篇文章!