0

アプリケーションで ionic.bundle.js と ngcordova.js を使用しています。上記のライブラリをロードするために require js を使用しています。

「Uncaught ReferenceError: angular is not defined」というエラーが表示されます。

以下はコードです: main.js

 require.config({
      paths: {
          'ionic': '/lib/ionic/js/ionic.bundle',
          'ngCordova' : '/lib/ng-cordova',

      },
      shim: {
          ngcordova: {
            deps: ['ionic']
          }
      },
     // baseUrl: '/app'
    });

require(['app'], function (app) {
  app.init();
});

app.js

define(['ionic', 'ngCordova'], function (ionic, ngCordova) {
    //'use strict';

    //var ionic = require('ionic');
    //var ngcordova = require('ngCordova');

    var appModule = angular.module("ePharma", ["ngCordova", "ionic"]);


    appModule.init = function () {
        alert("hi");
        angular.bootstrap(document, ['ePharma']);
    };

    return appModule;
});
4

2 に答える 2

0

Ionic フォーラムでこのリンクを見つけたとき、RequireJS で Ionic を使用した同じアプローチを探していました: Ionic and AngularJS 依存関係

そこで、@bengtler は、バンドル js ファイルを使用しないと説明しています。代わりに、http://code.ionicframework.com で入手できる分離された ionic ファイルと angular ファイルを使用、require.js 構成でそれらをシムします。

構成は次のようになります。

require.config({
baseUrl: 'app',
paths: {
    'angular': '../lib/angular.min',
    'angular_ionic': '../lib/ionic-angular.min'
    ...
},
shim: {
    'angular' : { 'exports' : 'angular' },
    'angular_ionic': [...]
},
priority: [
    'angular',
    'angular-ionic'
],
callback: function () {
    'use strict';

    require([
        'angular',
        'routes'
    ], function (angular) {
        // init app
        angular.bootstrap(document, ['app']);
    });
}});

私はまた、このアプローチが今でも彼が使っているものなのか、そして 2014 年のトピック以来、彼が今日どのような変更を加えるのかを彼に尋ねました。あなたはすでに解決策を見つけているかもしれませんが、それについてのより多くの意見を見ることは常に良いことです.

于 2016-05-10T16:52:37.770 に答える
0

シムで角度をエクスポートする必要があります。

shim: {
    'ionic': { exports: ['angular'] }
}
于 2015-02-13T08:02:37.887 に答える