我有一个带AngularJs 1.5.5,OnsenUI 2和EmojiOne的PhoneGap应用程序。
我正在尝试访问角度控制器内的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';
...
我稍后也会进行一些函数调用。
当我在我的电脑上运行时,它正在按预期工作,但无法在Android上解析“emojione”(未定义)。 这是我第一次使用angularjs和JavaScript,所以它可能非常简单。
答案 0 :(得分:1)
在处理angularjs和标准javascript库时,我喜欢创建一个模块和工厂,只是为了访问根变量,就像你想要做的那样:
angular.module('emojioneModule', [])
.factory('emojione', function($window) {
return $window.emojione;
});
这允许你注入引用,并允许你模拟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,然后直接从那里访问它。
答案 1 :(得分:1)
你是从cdn加载emojione库吗? 手机有互联网接入吗?