我有一个记录交易的应用程序,用户可以从下拉列表中选择类别。 类别在应用程序启动时加载,因为它们“大部分”是静态的/很少会发生变化。
所以,在我的datacontext.js中,我按照惯例做准备并填充我的数据;
var primeData = function () {
var promise = Q.all([
getLookups(),
getBankAccountPartials(null, true)])
.then(applyValidators);
return promise.then(success);
function success() {
datacontext.lookups = {
categories: getLocal('Categories', 'name', true),
transactiontypes: getLocal('TransactionTypes', 'name', true),
payees: getLocal('Payees', 'name', true)
};
log('Primed data', datacontext.lookups);
}
function applyValidators() {
model.applyBankAccountValidators(manager.metadataStore);
}
};
function getLookups() {
return EntityQuery.from('Lookups')
.using(manager).execute()
.then(processLookups)
.fail(queryFailed);
}
现在,偶尔在管理员屏幕中,用户可以编辑和添加类别。 在categoryadd.js viewmodel中,我的保存代码看起来像这样(提取显示);
save = function () {
isSaving(true);
datacontext.saveChanges()
.then(goToEditView).fin(complete);
function goToEditView(result) {
router.replaceLocation('#/categorydetail/' + category().id());
}
function complete() {
isSaving(false);
}
},
如何仅刷新类别查找数据?或者,我只是做错了,也许不应该将类别作为查找?
感谢。
答案 0 :(得分:0)
Breeze.js自动同步并知道搜索类别并在其查找列表中更新它。
我通过在执行保存后从浏览器控制台调用datacontext.lookups来检查这一点,并检查它显示的类别名称已被刷新的对象。