在John Papa Pluralsight Video的教程中尝试实现会话部分时.
我收到以下错误:
我收到以下错误:
Uncaught TypeError: Object # has no method ‘extendQ’
(function () { 'use strict'; 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 'ui.bootstrap',// ui-bootstrap (ex: carousel,pagination,dialog) //'breeze.angular.q' ]); // Handle routing errors and success events app.run(['$route','$rootScope','$q',function ($route,$rootScope,$q) { // Include $route to kick start the router. breeze.core.extendQ($rootScope,$q); //use$q($rootScope,$q); }]); })();
重要的是要知道我正在处理的微风版本比原始视频上使用的版本更新.
我在breeze website上搜索了一些答案,我发现了这个:
The to$q has been deprecated. It is superseded by the Breeze Angular Service.
但是我没有在教程示例中使用它.如何使用新的实现更改已弃用的实现?
更新:
http://www.breezejs.com/documentation/breeze-angular-service
微风库已更新,答案在此链接:
http://www.breezejs.com/documentation/breeze-angular-service
迁移是非常轻松的.
>从项目中删除breeze.angular.q.js脚本.
> Uninstall-Package Breeze.Angular.Q如果您使用NuGet.
>如上所述安装breeze.angular.js.
>更新您的index.html,将breeze.angular.q.js更改为breeze.angular.js.
>更新您的应用模块以依赖“breeze.angular”.
>在代码中找到一个名为“use $q”的地方,并将其替换为“breeze”依赖项.
例如,你可能会这样:
var app = angular.module('app',[ // ... other dependencies ... 'breeze.angular.q' // tells breeze to use $q instead of Q.js ]); app.run(['$q','use$q',function ($q,use$q) { use$q($q); }]);
对此:
var app = angular.module('app',[ // ... other dependencies ... 'breeze.angular' ]); app.run(['breeze',function () { }]);
您还应该追踪并消除配置Breeze以使用“backingStore”模型库适配器和$http的代码.例如,你可以从这个:
function configBreeze($q,$http,use$q) { // use $q for promises use$q($q); // use the current module's $http for ajax calls var ajax = breeze.config.initializeAdapterInstance('ajax','angular'); ajax.setHttp($http); // the native Breeze 'backingStore' works for Angular breeze.config.initializeAdapterInstance('modelLibrary','backingStore',true); breeze.NamingConvention.camelCase.setAsDefault(); }
对此:
function configBreeze() { breeze.NamingConvention.camelCase.setAsDefault();