Pregunta BreezeJS entityManagerFactory Proveedor Desconocido ASP.NET


Estoy inyectando el entityManagerFactory en Angular pero recibo un error. Esto se está haciendo en el módulo de datacontext al igual que el ejemplo de John Papa. El error es un proveedor desconocido. Estoy incluyendo el archivo entityManagerFactory.js en el archivo index.html pero no tengo éxito. ¿Algunas ideas?

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

5
2018-05-23 23:10


origen


Respuestas:


Tuve el mismo error, la solución fue simple y documentada en el blog de John Papas.

En su archivo index.html, asegúrese de tener referencias a todos los archivos de origen necesarios y de que estén cargados en el orden correcto.

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

Asegúrese de que app.js esté cargado antes de entityManagerFactory.js

No olvide incluir referencias a sus módulos de Breeze en app.js también.

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)
]);

7
2017-09-09 10:02



Si comenzó un nuevo proyecto con HotTowel.Angular.Breeze versión 2.2.0, el problema al que se enfrenta puede ser realmente un problema con BreezeProvider, que entityManagerFactory inyecta.

Si este es el caso, debería estar viendo el error:

Proveedor desconocido: breezeProvider <- breeze <- entityManagerFactory <- datacontext

Para corregir este problema, asegúrese de haber agregado 'breeze.angular.js' y 'breeze.directives.js' al index.html y agregado el 'breeze.angular' y 'breeze.directives' a app.js.

Esto permitirá que angular inyecte el breezeProvider en entityManagerFactory, que luego podrá inyectarse con éxito en su datacontext.

Además, es posible que falte el archivo breeze.directives.js en la carpeta del script y en su lugar solo tenga breeze.directives.validation.js. Esto parece ser un problema con el paquete Nuget HotTowel.Angular.Breeze v2.2.0. Puedes arreglar esto instalando Breeze.Angular.Directives v1.3.6 usando Nuget.

PM> install-package breeze.angular.directives

Puede encontrar información adicional e instrucciones detalladas sobre este tema en el blog de John Papa en http://www.johnpapa.net/new-breeze-angular-service/


4
2018-06-06 15:03