[英]Getting Metadata Query Failed error breeze/Breeze/Metadata on Azure Server Hot Towel Angular
[英]Hot Towel Angular-Breeze course - getting breezeProvider errors
我正在遵循John Papa課程“使用Angular和Breeze構建應用程序-第1部分”中的所有步驟,一旦完成了標題為“開始播放第一個剪輯並通過您的應用程序創建垂直切片”的模塊,我便開始遇到breezeProvider錯誤 。
請在下面找到錯誤圖片以及datacontext。 js代碼。
您的建議將不勝感激。
-------------------------------------------
在F12開發人員工具中,控制台錯誤為:
未捕獲的錯誤:找不到微風localhost:1772 / Scripts / breeze.angular.js:90 [shell] Hot Towel Angular已加載! 空值
錯誤:[$ injector:unpr]未知提供程序:breezeProvider <-微風< -entityManagerFactory < -datacontext
[app] [CC錯誤] [$ injector:unpr]未知提供程序:breezeProvider <-微風<-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;
}
}
}
})();
真正的問題是第一個錯誤: 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.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 -->
確保在模塊定義中包括將微風服務作為依賴項包括在內:
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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.