Hot Towel Angular-Breeze课程 - 获取breezeProvider错误

bob*_*zzo 2 datacontext angularjs breeze hottowel

我正在遵循John Papa的课程中的每一步,使用Angular和Breeze构建应用程序 - 第1部分.一旦我完成了题为"在第一个片段开始播放通过您的应用创建垂直片段"的模块,我开始得到breezeProvider错误.

请在下面找到错误图片,以及datacontext.js代码.

非常感谢您的建议.

                  -------------------------------------------
Run Code Online (Sandbox Code Playgroud)

在F12 Dev Tools中,控制台错误是:

未捕获错误:找不到breeze localhost:1772/Scripts/breeze.angular.js:90 [shell] Hot Towel Angular loading!空值

错误:[$ injector:unpr]未知提供者:breezeProvider < - breeze < - entityManagerFactory < - datacontext

[app] [CC Error] [$ injector:unpr]未知提供者:breezeProvider < - breeze < - entityManagerFactory < - datacontext

微风错误

这是我的datacontext.js代码:

(function () {
 'use strict';

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

function datacontext(common, emFactory) {   // emFactory param refers to 'entityManagerFactory'
    var EntityQuery = breeze.EntityQuery;
    var getLogFn = common.logger.getLogFn;  
    var log = getLogFn(serviceId);          // see common\logger.js
    var logError = getLogFn(serviceId, 'error');
    var logSuccess = getLogFn(serviceId, 'success');
    var manager = emFactory.newManager();           // COMES FROM entityManagerFactory.js
    var $q = common.$q;

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

    return service;

    function getMessageCount() { return $q.when(72); }

    function getPeople() {
        var people = [
            { firstName: 'John', lastName: 'Papa', age: 25, location: 'Florida' },
            { firstName: 'Ward', lastName: 'Bell', age: 31, location: 'California' },
            { firstName: 'Colleen', lastName: 'Jones', age: 21, location: 'New York' },
            { firstName: 'Madelyn', lastName: 'Green', age: 18, location: 'North Dakota' },
            { firstName: 'Ella', lastName: 'Jobs', age: 18, location: 'South Dakota' },
            { firstName: 'Landon', lastName: 'Gates', age: 11, location: 'South Carolina' },
            { firstName: 'Haley', lastName: 'Guthrie', age: 35, location: 'Wyoming' }
        ];
        return $q.when(people);
    }

    function getSessionPartials() {            
        var orderBy = 'timeSlotId, level, speaker.firstName';
        var sessions;

        // use Breeze to get data from back end; see datacontext() function above for init code.
        return EntityQuery.from('Sessions')
            .select('id, title, code, speakerId, trackId, timeSlotId, roomId, level, tags')
            .orderBy(orderBy)
            .toType('Session')              // cast to type 'Session' (in CC.Model project)
            .using(manager).execute()       //  communicate to back end
            .then(querySucceeded, _queryFailed);
            //.to$q(querySucceeded, _queryFailed);   // OLD WAY: converts promise to Ang.

        function querySucceeded(data) {
            session = data.results;
            log('Retrieved Session Partials from remote data source', sessions.length, true);
            return sessions;
        }
        function _queryFailed(error) {  // PASSED IN BY BREEZE
            var msg = config.appErrorPrefix + 'Error retrieving data.' + error.message;  
            logError(msg, error);
            throw error;
        }
    }
 }

})();
Run Code Online (Sandbox Code Playgroud)

Len*_*rri 5

真正的问题是第一个错误:Can't find breeze.看到那breeze.angular.js是吠叫的文件......

确保在你的index.html:中添加了breeze JS文件:

<script src="scripts/breeze.debug.js"></script> // or breeze.min.js
<script src="scripts/breeze.angular.js"></script>
Run Code Online (Sandbox Code Playgroud)

如果您已经添加了它,请确保它breeze.angular.js如上所示.


这些是breeze我在我的应用程序中的JS引用:

<!-- #region Breeze -->
<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>
<!-- #endregion -->
Run Code Online (Sandbox Code Playgroud)

  • @bob:亲爱的Bob ......在这种情况下,这些额外的步骤可以帮到你:http://stackoverflow.com/a/24085004/114029我的猜测是你仍然缺少`index.html`中必要的JS文件页. (2认同)
  • @bob:这是你需要改变的地方:http://www.breezejs.com/documentation/breeze-angular-service (2认同)