【问题标题】:MobileFirst v8 and bootstrap Angular JS v1.5.3 errorMobileFirst v8 和引导 Angular JS v1.5.3 错误
【发布时间】:2016-12-18 12:51:10
【问题描述】:

我有一个使用 MobileFirst Platform 版本 8、Ionic 版本 1.3.1 和 AngularJS 版本 1.5.3 的 Cordova 应用程序。当我运行它并引导 Angular JS 以便应用程序首先连接到 MobileFirst 平台时,我收到以下错误:

Error in Success callbackId: WLAuthorizationManagerPlugin561212842 : Error: [$injector:modulerr] Failed to instantiate module ng due to:
TypeError: Cannot set property 'aHrefSanitizationWhitelist' of null
    at $$SanitizeUriProvider (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:30845:35)
    at new <anonymous> (file:///android_asset/www/plugins/cordova-plugin-mfp/worklight/worklight.js:1079:23)
    at Object.instantiate (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:18010:14)
    at provider (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:17824:36)
    at file:///android_asset/www/lib/ionic/js/ionic.bundle.js:13735:32
    at forEach (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:13705:20)
    at Object.provider (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:17814:9)
    at ngModule (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:15863:16)
    at Object.invoke (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:17995:19)
    at runInvokeQueue (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:17888:35)
http://errors.angularjs.org/1.5.3/$injector/modulerr?p0=ng&p1=TypeError%3A%…2F%2Fandroid_asset%2Fwww%2Flib%2Fionic%2Fjs%2Fionic.bundle.js%3A17888%3A35)

有人可以帮我解决这个问题吗?

我发现以前有人问过similar question,但那是针对 MobileFirst Platform 版本 7 的,似乎没有得到解决。

感谢您的帮助!

【问题讨论】:

    标签: javascript angularjs ionic-framework ibm-mobilefirst angular-ui-bootstrap


    【解决方案1】:

    cordova-plugin-mfp 的新版本将在几天后发布,解决上述问题。

    同时,您可以使用以下解决方法来解决问题。

    1. 替换worklight.js中的以下代码,您可以在以下路径中找到不同环境的代码。

    Android - 项目/插件/cordova-plugin-mfp/src/android/assets/www/worklight/worklight.js

    iOS - 项目/插件/cordova-plugin-mfp/src/ios/www/worklight/worklight.js

    Windows - 项目/插件/cordova-plugin-mfp/src/windows/www/worklight/worklight.js

    function bind(context) {
    if (arguments.length < 2 && WLJSX.Object.isUndefined(arguments[0])) {
    return this;
    }
    var __method = this,
    args = slice.call(arguments, 1);
    return function() {
    var a = merge(args, arguments);
    return __method.apply(context, a);
    };
    }
    

    应该替换为

    function bind(obj) {
    var args = Array.prototype.slice.call(arguments, 1),
    self = this,
    Nop = function() {
    },
    bound = function() {
    return self.apply(
    this instanceof Nop ? this : (obj || {}), args.concat(
    Array.prototype.slice.call(arguments)
    )
    );
    };
    Nop.prototype = this.prototype || {};
    bound.prototype = new Nop();
    return bound;
    }
    
    1. 删除平台并重新添加平台。

    【讨论】:

    • “我们将更新 MFP”是什么意思?这也只是 android 的问题,或者如果在 iOS 上我需要运行 cordova platform update ios--save
    • 我也试过这个,当我将函数更改为您所说的更改时,我运行 cordova platform update android --save,但是当我使用 cordova run 运行项目时,文件恢复为原来的功能,我得到同样的错误
    • 尝试删除并重新添加平台。
    • 我这样做了(删除并重新添加了平台)并且文件仍然恢复到旧功能?
    • 您究竟是如何删除和重新添加平台的?我手动删除了平台文件夹并使用命令cordova platform add ios 重新添加了平台。它对我有用。
    猜你喜欢
    • 1970-01-01
    • 2016-06-16
    • 1970-01-01
    • 2016-10-03
    • 2018-02-16
    • 1970-01-01
    • 2014-04-02
    • 1970-01-01
    相关资源
    最近更新 更多