1

AngularJs 1.5.5、OnsenUI 2、および EmojiOne を使用した PhoneGap アプリがあります。

angularコントローラー内のemojione変数にアクセスしようとしています:

ons.bootstrap.controller('AppController', ['$scope', '$timeout','$http', '$sce', function ($scope, $timeout, $http, $sce) {

    emojione.imageType = 'svg';
    emojione.sprites = true;
    emojione.imagePathSVGSprites = '../res/sprites/emojione.sprites.svg';
    ...

後でいくつかの関数呼び出しもあります。

PCで実行すると意図したとおりに機能しますが、Androidでは「emojione」(未定義)を解決できません。angularjs と JavaScript を使用するのはこれが初めてなので、非常に単純なものかもしれません。

4

2 に答える 2

1

CDN から emojione ライブラリをロードしていますか? モバイルはインターネットにアクセスできますか?

于 2016-05-25T21:20:15.320 に答える
1

angularjs と標準の javascript ライブラリを扱うとき、あなたがやろうとしているのと同じように、単にルート変数にアクセスするためのモジュールとファクトリを作成するのが好きです:

angular.module('emojioneModule', [])
.factory('emojione', function($window) {
    return $window.emojione;
});

これにより、参照を挿入でき、代わりにモックを挿入できるため、単体テスト用に絵文字をモックアップできます。

ons.bootstrap.controller('AppController', ['$scope', '$timeout','$http', '$sce', 'emojione', function ($scope, $timeout, $http, $sce, emojione) {

    emojione.imageType = 'svg';
    emojione.sprites = true;
    emojione.imagePathSVGSprites = '../res/sprites/emojione.sprites.svg';
    ...

ただし、$window を挿入して、そこから直接アクセスすることもできます。

于 2016-05-25T21:16:30.393 に答える