在 angular 控制器中访问 emojione 的正确方法
Correct way to access emojione in angular controller
我有一个带有 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,所以它可能非常简单。
在处理 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,然后直接从那里访问它。
你是从 cdn 加载 emojione 库吗?
手机可以上网吗?
我有一个带有 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,所以它可能非常简单。
在处理 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,然后直接从那里访问它。
你是从 cdn 加载 emojione 库吗? 手机可以上网吗?