BreezeJS修改默认密钥

时间:2015-06-22 21:57:02

标签: angularjs entity-framework breeze

我正在使用带有实体框架的breezeJS,使用ui-bootstrap模式对话框为用户输入字段提供输入标签。因为我需要一个初始化的实体,我还需要为实体提供一个实体密钥,我相信在http://breeze.github.io/doc-js/inside-entity.html下的"分离的实体中描述了实体密钥。"如果我不改变模态中的键值,一切都很好。但是,在用户输入适当的密钥之前,这应该是占位符密钥。发生这种情况时,manager.saveChanges()会捕获错误。我已经尝试将实体初始化为分离,完成模态,然后添加到管理器,但也没有成功。有关如何使用默认密钥初始化实体的任何想法将立即被用户替换?谢谢!

//datacontext.js
        function saveChanges() {
            if (createItem.entityAspect.entityState.isDetached()) {
                manager.addEntity(createItem);
            }
            if (manager.hasChanges()) {
                manager.saveChanges()
                    .then(saveSucceeded)
                    .catch(saveFailed);
            } else {
                console.log("Nothing to save");
            }

            function saveSucceeded() {
                console.log("Save succeeded");
                return;
            }
            function saveFailed() {
                console.log("Save failed");
                return;
            }
        }


        function newItem() {
            createItem = manager.createEntity('Some_Entity_Type',
                { aPI: '1000001' }, breeze.EntityState.Detached);
            return createItem;
        };

1 个答案:

答案 0 :(得分:0)

看起来问题是使用实际的主键值进行初始化。用

初始化
        function newItem() {
        createItem = manager.createEntity('Some_Entity_Type',
            { aPI: 0 }, breeze.EntityState.Detached);
        return createItem;
    };
在用户输入实际密钥之前,

充当临时占位符。我的更大问题是由于在ui-modal中有不同类型的输入框,其中每个都是type =“text”,因此键值作为文本输入并抛出错误。