当值发生更改时,使用Breeze.js刷新SPA中的查找

时间:2013-07-24 11:34:40

标签: breeze

我有一个记录交易的应用程序,用户可以从下拉列表中选择类别。 类别在应用程序启动时加载,因为它们“大部分”是静态的/很少会发生变化。

所以,在我的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);
                }
            },

如何仅刷新类别查找数据?或者,我只是做错了,也许不应该将类别作为查找?

感谢。

1 个答案:

答案 0 :(得分:0)

Breeze.js自动同步并知道搜索类别并在其查找列表中更新它。

我通过在执行保存后从浏览器控制台调用datacontext.lookups来检查这一点,并检查它显示的类别名称已被刷新的对象。