gpt4 book ai didi

javascript - Angularjs 将服务注入(inject)指令中

转载 作者:行者123 更新时间:2023-12-03 06:43:28 25 4
gpt4 key购买 nike

我需要将服务注入(inject)指令中。这是我目前拥有的。我将 configFactory 注入(inject)指令

app.directive('googleAnalytics', function(configFactory){ 
return {
restrict: 'E',
replace: true,
link : function(scope,element,attrs){
scope.configs = configFactory.getconfigs();
console.log(scope.configs);
},
template: function(elem, attr){
return "<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');ga('create', '', 'auto');</script>"
}
}
})

这是我的 console.log 的样子

Promise {$$state: Object}
$$state:Object
status:1
value:Array[1]
0:Object
a1:"Survivor"
a2:"Patient"
button_name:"DONATE TODAY"
company_clr_1:"#46b8da"
ga_id:"UA-XXXXXXXX-1"

如何获取ga_id?我需要在此处插入其值:ga('create', 'ga_id', 'auto')

该服务如下所示:

app.factory('configFactory', function($rootScope, $log, $q, $http, Data) {
var configs= {};
configs.getconfigs=function(){
var deferred = $q.defer();

Data.get('config').then(function(data){
deferred.resolve(data.data);
});
return deferred.promise;
}
return configs;
});

最佳答案

configFactory.getconfigs() 返回一个 promise ,因此您应该使用

configFactory.getconfigs().then(function(configs) {
scope.configs = configs;
});

我还会在同一位置执行 GA 代码,而不是使用模板。我有一种感觉,后者效果不会很好。

关于javascript - Angularjs 将服务注入(inject)指令中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37848992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com