Angularjs BreezeJS修改默认密钥

Angularjs BreezeJS修改默认密钥,angularjs,entity-framework,breeze,Angularjs,Entity Framework,Breeze,我使用breezeJS和实体框架,使用ui引导模式对话框为用户输入字段提供输入标签。因为我需要一个初始化的实体,所以我还需要为该实体提供一个实体键,我相信在“分离的实体”下有描述。如果我不更改模式中的键值,一切都会好起来。但是,在用户输入相应的键之前,该键应该是占位符键。出现这种情况时,manager.saveChanges()会捕获一个错误。我尝试将实体初始化为分离,完成模式,然后添加到管理器,但也没有成功。关于如何使用默认密钥初始化实体(该密钥将立即被用户替换)有何想法?谢谢 //datac

我使用breezeJS和实体框架,使用ui引导模式对话框为用户输入字段提供输入标签。因为我需要一个初始化的实体,所以我还需要为该实体提供一个实体键,我相信在“分离的实体”下有描述。如果我不更改模式中的键值,一切都会好起来。但是,在用户输入相应的键之前,该键应该是占位符键。出现这种情况时,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;
        };

问题似乎是用实际的主键值初始化的。初始化为

        function newItem() {
        createItem = manager.createEntity('Some_Entity_Type',
            { aPI: 0 }, breeze.EntityState.Detached);
        return createItem;
    };
充当临时占位符,直到用户输入实际密钥。我更大的问题是由于ui模式中有不同类型的输入框,每个输入框都是type=“text”,因此键值被输入为text,并引发错误