Я пытаюсь работать с ui-router с клиентским js HtmlService в сценарии приложений. После исчерпывающих попыток я застрял в простой проблеме js
.state('state1', {
url: base+'?page=state1_KB',
views: {
'content':{
template:
function(){
google.script.run.withFailureHandler(notemp).withSuccessHandler(temp).include(obj);
function temp(view){
console.log(view); //This logs successfully.
return view; //This works too I suppose
}
return temp(view); //This doesn't work obviously
},
controller: 'state1Controller'
}
}
})
include(obj)
выбирает шаблон и возвращает его к temp(view)
. Мне нужно вернуть значение из temp(view)
. Но, очевидно, он ничего не вернет.
Как вернуть внешнюю функцию после того, как temp(view)
был вызван google.script.run
?
Для чистого энтузиаста JS, я думаю, это очень похоже на это:
function outer(){
var a = "b";
setTimeout(function(){console.log("this is Log"); a = 'c';}, 2000);
return a;
}
С ui-router или угловой точки зрения, есть ли что-то более простое, что я мог бы сделать, чтобы достичь того, что я здесь пытаюсь?
Что-то вроде этого должно работать
templateProvider:
function($q){
var deferred = $q.defer();
var temp = function(view){
console.log(view);
deferred.resolve(view);
}
google.script.run
.withFailureHandler(notemp)
.withSuccessHandler(temp)
.include(obj);
return deferred.promise;
},
controller: 'state1Controller'
}