2014-05-23 9 views
5

Ich injiziere die entityManagerFactory in Angular, aber ich erhalte einen Fehler. Dies geschieht im DataContext-Modul genau wie John Papas Beispiel. Der Fehler ist unbekannter Anbieter. Ich schließe die Datei entityManagerFactory.js in der Datei index.html ein, aber keinen Erfolg. Irgendwelche Ideen?BreezeJS entityManagerFactory Unbekannter Provider 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 
     }; 
    } 
} 

Antwort

4

Wenn Sie ein neues Projekt mit HotTowel.Angular.Breeze Version 2.2.0, das Problem tatsächlich begonnen Sie konfrontiert möglicherweise ein Problem mit dem BreezeProvider sein, die EntityManagerFactory einspritzt.

Wenn dies der Fall ist, sollten Sie den Fehler sehen werden:

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

dieses Problem zu beheben, stellen Sie sicher, dass Sie beide ‚breeze.angular.js‘ hinzugefügt haben und ‚breeze.directives.js‘ zu der index.html und hinzugefügt die 'breeze.angular' und 'breeze.directives' zu app.js.

Dadurch kann angle den breezeProvider in entityManagerFactory einfügen, der dann erfolgreich in Ihren Datenkontext eingefügt werden kann.

Darüber hinaus können Sie feststellen, dass Sie die breeze.directives.js aus dem Skriptordner vermissen und stattdessen nur breeze.directives.validation.js haben. Dies scheint ein Problem mit dem HotTowel.Angular.Breeze v2.2.0 Nuget-Paket zu sein. Sie können dies beheben, indem Sie Breeze.Angular.Directives v1.3.6 mit Nuget installieren.

PM> install-package breeze.angular.directives

Weitere Informationen und detaillierte Anweisungen zu diesem Thema finden Sie unter http://www.johnpapa.net/new-breeze-angular-service/

7

auf John Papas Blog findet ich den gleichen Fehler hatte, war die Lösung einfach und in John Papas Blog dokumentiert.

Stellen Sie in Ihrer index.html-Datei sicher, dass Sie Verweise auf alle erforderlichen Quelldateien haben und dass sie in der richtigen Reihenfolge geladen werden.

<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> 

Stellen Sie sicher, dass app.js vor entityManagerFactory.js

Vergessen Sie nicht, auch Verweise auf Ihre Brise Module in app.js enthalten geladen wird.

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

Spot auf Roger. Da ich von einer leeren Hot Towel Vorlage von Nugget ausgegangen bin, wurden diese 3rd Party Modules nicht registriert. – SwampyFox

+3

Ich war an der gleichen Stelle und ich folgte mit dem PluralSight Video. Die 'briseangular' und' breeze.directives' fehlen in meiner app.js. Danke –

Verwandte Themen