2014-05-23 18 views
5

Tôi đang tiêm thực thểManagerFactory vào Angular nhưng tôi gặp lỗi. Điều này đang được thực hiện trong mô đun datacontext giống như ví dụ của John Papa. Lỗi là nhà cung cấp không xác định. Tôi bao gồm tệp entityManagerFactory.js trong tệp index.html nhưng không thành công. Bất kỳ ý tưởng?Thực thể BreezeJSManagerFactory Nhà cung cấp không xác định ASP.NET

function() { 
    'use strict'; 

    var serviceId = 'datacontext'; 
    angular.module('app').factory(serviceId, ['common', 'entityManagerFactory', 'breeze', 'logger', datacontext]); 

    function datacontext(common) { 
     var $q = common.$q; 

     var service = { 
      getPeople: getPeople, 
      getMessageCount: getMessageCount 
     }; 
    } 
} 

Trả lời

4

Nếu bạn bắt đầu một dự án mới sử dụng HotTowel.Angular.Breeze phiên bản 2.2.0, các vấn đề mà bạn đang phải đối mặt có thể thực sự là một vấn đề với BreezeProvider, mà entityManagerFactory tiêm.

Nếu đây là trường hợp, bạn nên nhìn thấy những lỗi:

Unknown provider: breezeProvider <- breeze <- entityManagerFactory <- datacontext

Để khắc phục vấn đề này, hãy chắc chắn rằng bạn đã thêm cả 'breeze.angular.js' và 'breeze.directives.js' vào index.html và thêm 'breeze.angular' và 'breeze.directives' vào app.js.

Điều này sẽ cho phép góc để đưa breezeProvider vào thực thểManagerFactory, sau đó sẽ có thể được tiêm thành công vào datacontext của bạn.

Ngoài ra, bạn có thể thấy rằng bạn đang thiếu tệp breeze.directives.js từ thư mục tập lệnh và thay vào đó chỉ có breeze.directives.validation.js. Điều này dường như là một vấn đề với gói Nuget HotTowel.Angular.Breeze v2.2.0. Bạn có thể sửa lỗi này bằng cách cài đặt Breeze.Angular.Directives v1.3.6 bằng Nuget.

PM> install-package breeze.angular.directives

thông tin bổ sung và hướng dẫn chi tiết về vấn đề này có thể được tìm thấy trên blog của John Papa tại http://www.johnpapa.net/new-breeze-angular-service/

7

tôi đã có lỗi tương tự, giải pháp rất đơn giản và tài liệu trong Giăng Papas blog.

Trong tệp index.html của bạn, hãy đảm bảo rằng bạn có tham chiếu đến tất cả các tệp nguồn được yêu cầu và chúng được tải theo đúng thứ tự.

<link href="content/breeze.directives.css" rel="stylesheet" /> 

<script src="scripts/breeze.debug.js"></script> 
<script src="scripts/breeze.angular.js"></script> 
<script src="scripts/breeze.directives.js"></script> 
<script src="scripts/breeze.saveErrorExtensions.js"></script> 

<script src="scripts/breeze.to$q.shim.js"></script> <!-- Needed only if you are using to$q --> 

<script src="app/app.js"></script> 
... 
... 
<script src="app/services/entityManagerFactory.js"></script> 

Hãy chắc chắn rằng app.js được nạp trước khi entityManagerFactory.js

Đừng quên bao gồm tài liệu tham khảo các mô-đun dễ dàng của bạn trong app.js là tốt.

var app = angular.module('app', [ 
    // Angular modules 
    'ngAnimate',  // animations 
    'ngRoute',   // routing 
    'ngSanitize',  // sanitizes html bindings (ex: sidebar.js) 

    // Custom modules 
    'common',   // common functions, logger, spinner 
    'common.bootstrap', // bootstrap dialog wrapper functions 

    // 3rd Party Modules 
    'breeze.angular', // configures breeze for an angular app 
    'breeze.directives', // contains the breeze validation directive (zValidate) 
    'ui.bootstrap'  // ui-bootstrap (ex: carousel, pagination, dialog) 
]); 
+0

Phát hiện trên Roger. Bởi vì tôi đã bắt đầu từ một mẫu Hot Towel trống từ Nuget, các Mô-đun bên thứ ba này không được đăng ký. – SwampyFox

+3

Tôi đã ở cùng một vị trí và tôi đang theo dõi video PluralSight. 'Breezeangular' và' breeze.directives' bị thiếu trong app.js. Cám ơn –

Các vấn đề liên quan