Я получаю эту ошибку при запуске примера приложения для AngularJS с веб-сайта Breeze.
Это код для контроллера 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(failed) с этим сообщением об ошибке: «MergeStrategy« 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
) работает правильно и возвращает набор объектов Json, представляющих все продукты в коллекции.
manager.createEntity()
и использовать тот же идентификатор (ноль — это тот же идентификатор, кстати) - person PW Kad   schedule 09.05.2014