微风错误:“禁止使用”的合并策略'

时间:2014-05-08 20:20:34

标签: node.js angularjs mongodb breeze mean-stack

从Breeze网站运行AngularJS的示例应用程序时出现此错误。

这是控制器breezectl.js的代码:

'use strict';

angular.module('mean').controller('breezeController', ['$scope', 'Global', 'dataservice',
    function($scope, Global, dataservice) {
        $scope.global = Global;
        $scope.breeze = {
            name: 'Breeze Sample'
        };

        //$scope.results = dataservice;

        function getProducts() {
            function success(data) {
                $scope.results = data;
            }
            function failed(error) {
                $scope.results = error.message;
            }

            dataservice.getAllProducts()
                .then(success)
                .catch(failed); 
        }

        getProducts();
    }
]);

dataservice.getAllProducts()使用以下错误消息进入catch(失败)分支:" MergeStrategy of' Disallowed'当具有相同密钥的实体已附加"

时,不允许您附加实体

这是dataservice.js的代码:

'use strict';

angular.module('mean').factory('dataservice', ['breeze', 'entityManagerFactory', 
    function(breeze, entityManagerFactory) {
        var manager = entityManagerFactory.newManager();

        function getAllProducts(){
            function success(data) {
                return data.results;
            }

            return breeze.EntityQuery.from('Products')
                .using(manager).execute()
                .then(success);
        }


        var service = {
            getAllProducts: getAllProducts
        };
        return service;
    }
]);

注意:从Restful API(localhost:3000/breeze/northwind/Products)直接调用Products可正常工作,并返回一组代表集合中所有产品的Json对象。

1 个答案:

答案 0 :(得分:0)

史蒂夫施密特是对的。我的metadata.json具有“defaultResourceName”属性,其名称与数据库集合不同。 我将“产品”改为“产品”,这很有效。

非常感谢你们所有人。