2

こんにちは、ローカル ストレージに angularjs ライブラリを使用しています

通常の方法でプロジェクトに追加しました

var app = angular.module('starter', ['ionic', 'starter.controllers', 'customFilters', 'LocalStorageModule']);

しかし、コードを実行しようとすると、「isObject が定義されていません」、「isDefinded が定義されていません」というエラーが表示されます。

これらはすべてAngularメソッドであり、Angular.isDefinedをプレフィックスとして付けると正常に機能しますが、ライブラリはこのように記述されているため、問題は何ですか? 各メソッドの前に「角度のある」単語を使用しないようにする方法。

ありがとう。

4

1 に答える 1

0

関数isDefinedisObjectは実際には angularangular.isDefinedとへのショートカット参照angular.isObjectです。これらの参照は、src/common.jsビルド プロセス ( concat:distGrunt taskを確認) 中に連結src/angular-local-storage.jsされ、クロージャーにラップされるファイルで定義されます。

concat: {
  options: {
    banner: '<%= meta.banner %>' + '\n' +
      '(function ( window, angular, undefined ) {' + '\n',
    footer: '})( window, window.angular );'
  },
  dist: {
    src: ['src/common.js', 'src/angular-local-storage.js'],
    dest: '<%= dirs.dest %>/<%= pkg.name %>.js'
  }
},

そのため、これらの便利な関数はライブラリ コードで使用できますが、外部では使用できません。ローカルスコープのどこかに自分で定義しない限り、それらを使用することはできません。

于 2014-11-09T09:04:52.733 に答える