【问题标题】:Hot Towel Angular-Breeze course - getting breezeProvider errorsHot Towel Angular-Breeze 课程 - 遇到 BreadProvider 错误
【发布时间】:2023-03-04 18:29:01
【问题描述】:

我正在关注 John Papa 的课程“使用 Angular 和 Breeze 构建应用程序 - 第 1 部分”中的每一步。 当我完成题为“开始播放第一个剪辑通过您的应用创建垂直切片”的模块后,我开始遇到 breezeProvider 错误

请在下面找到错误图像以及数据上下文。 js代码。

您的建议将不胜感激。

                  -------------------------------------------

在 F12 开发工具中,控制台错误是:

未捕获的错误:找不到微风 localhost:1772/Scripts/breeze.angular.js:90 [shell] 热毛巾角装!空

错误:[$injector:unpr] 未知提供者:breezeProvider

[app] [CC 错误] [$injector:unpr] 未知提供者:breezeProvider

这是我的 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;
        }
    }
 }

})();

【问题讨论】:

    标签: angularjs breeze datacontext hottowel


    【解决方案1】:

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

    确保您的 index.html 中添加了微风 JS 文件:

    <script src="scripts/breeze.debug.js"></script> // or breeze.min.js
    <script src="scripts/breeze.angular.js"></script>
    

    如果您已经添加了它,请确保它位于 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 -->
    

    【讨论】:

    • 那个 def 摆脱了 Can't find breeze 错误;但是我的屏幕截图中的其余错误仍然出现(“未知提供者:微风提供者”)
    • @bob:亲爱的 Bob... 在这种情况下,这些额外的步骤应该可以帮助到你:stackoverflow.com/a/24085004/114029 我猜你在index.html 页面中仍然缺少必要的 JS 文件。跨度>
    • 感谢先生的帮助。我现在走得更远了,但仍然收到我应该尽快修复的“查询”参数错误。我前段时间读过johnpapa.net/new-breeze-angular-service,但显然我错过了app.js中的一些关键代码行。
    • @bob:是的......从课程发布快进到今天,情况发生了一些变化。
    • @bob:这是您需要更改的内容:breezejs.com/documentation/breeze-angular-service
    【解决方案2】:

    确保在模块定义中包含微风服务作为依赖项:

    var app = angular.module('app', [
        'ngAnimate',        
        'ngRoute',          
        'ngSanitize',       
    
        'breeze.angular',   // THIS IS THE MISSING DEPENDENCY
    
        'common',           
        'common.bootstrap', 
    
        'ui.bootstrap'      
    ]);
    

    并确保包含这些文件:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-16
      • 1970-01-01
      • 2013-04-05
      • 2012-04-08
      相关资源
      最近更新 更多