微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

angularjs – 我的Breeze脚本上已弃用方法的版本问题

在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();

原文地址:https://www.jb51.cc/angularjs/142313.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐