小编cob*_*ite的帖子

Breezejs,如何在开始时使用共享的EntityManager获取元数据

我有一个使用Breeze的Angular应用程序,它有一个共享的EntityManager用于我的不同控制器.可以在不执行查询的情况下访问我的一些控制器,以预先填充EntityManager的MetadataStore.我已经找到了一个开始方向有点的在这里说,在应用程序的启动来获取元数据.我的项目基于Angular-Breezejs模板,当我尝试执行以下操作时,我会收到错误,因为在使用datacontext之前,promise没有完全解析.

app.factory('datacontext',
    ['breeze', 'Q', 'model', 'logger', '$timeout',
        function (breeze, Q, model, logger, $timeout) {
            logger.log("creating datacontext");

            configureBreeze();
            var manager = new breeze.EntityManager("/api/app");            
            manager.enableSaveQueuing(true);

            var datacontext = {
                metadataStore: manager.metadataStore,
                saveEntity: saveEntity,
                getUsers: getUsers,
                getUser: getUser,
                createUser: createUser,
                deleteUser: deleteUser
            };

            return manager.fetchMetadata()
                    .then(function () {
                        model.initialize(datacontext);
                        return datacontext;
                    })
                    .fail(function (error) {
                        console.log(error);
                        return error;
                    });
            //Function definitions
Run Code Online (Sandbox Code Playgroud)

在元数据提取完成之前,阻止的正确方法是什么?因为似乎没有必要在每个非查询函数(包括实体创建)之前检查元数据是否存在,就像上面链接的问题的原始海报一样.

angularjs breeze

9
推荐指数
1
解决办法
3600
查看次数

标签 统计

angularjs ×1

breeze ×1