В частности, я использую Ionic. У меня проблемы с глобальной функцией, которая вызывается до того, как устройство будет готово. Как перенести данные из глобальной функции javascript в Angular и предотвратить это состояние гонки?Как интегрировать глобальный javascript в угловой?
0
A
ответ
0
Выяснил это. Этот пример специфичен для https://branch.io/, но он позволяет мне иметь глобальную функцию javascript и вставлять данные в угловые, используя injector()
.
Global DeepLinkHandler в угловой
слушать данные филиала в глобальной функции, за исключением углового
DeepLink
завода
// a global function
function DeepLinkHandler(data) {
if (data) {
// access the angular Factory('DeepLink')
angular.element(document.querySelector('[ng-app]')).injector().get('DeepLink').set(data);
console.log('Data Link handler response: ' + JSON.stringify(data));
} else {
console.error('Data Link handler no data');
}
}
угловых
DeepLink
завод
angular.module('starter.services', [])
.factory('DeepLink', function($window, $timeout) {
var data = {};
return {
get: function() {
return data;
},
set: function(json) {
// use the angular version of timeout
$timeout(function() {
// set the data
data = json;
// navigate example
$window.location = "#/tab/chats/3";
}, 0);
}
};
});
доступ угловой
DeepLink
завод
angular.module('starter.controllers', [])
.controller('DashCtrl', function($scope, DeepLink) {
$scope.content = {}
$scope.buttonPressed = function() {
// put branch data into a label that has ng-model content.data
$scope.content.data = JSON.stringify(DeepLink.get());
};
})