2014-05-08 31 views
0

從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()進入捕撈(失敗)與此錯誤消息分支道:「‘不允許’A MergeStrategy不允許附加實體當使用相同的密鑰的實體已連接」

這是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對象。

+0

聽起來像你正在嘗試添加一個像'manager.createEntity()'和使用相同的id(null是一個相同的Id btw)的新實體 –

+0

@PWKad非常感謝你的回答,但我只是想要列出。 我很抱歉,但這不是問題。我沒有更多的代碼。 – jotavans

+0

您能告訴我們產品實體的Breeze元數據的樣子嗎? –

回答

0

史蒂夫施密特是正確的。我的metadata.json具有與數據庫集合不同名稱的「defaultResourceName」屬性。 我將「產品」更改爲「產品」,此作品。

非常感謝大家。