我对Cordova程序中的变量范围有疑问。
这是我的代码:
angular.module('starter.services', [])
.factory('myFactory', function ($http) {
var myVar = "HELLO";
alert(myVar); //HELLO -> Correct
$http.get("URL").then(
function (response) {
myVar = response.data;
alert(myVar) // Correct Answer
}, function (error) {
console.log("Get config.json error - " + JSON.stringify(error));
}
);
alert(serverName); //HELLO -> why?
我在http块之外声明了我的变量。你能帮助我吗?谢谢
答案 0 :(得分:0)
首先,您从未定义serverName
,以便提醒未定义。
您的最终提醒也会在$http.get()
返回之前被呼叫,因此myVar
尚未更新。我想你应该阅读$http
服务(https://docs.angularjs.org/api/ng/service/ $ http)以及承诺如何运作(http://andyshora.com/promises-angularjs-explained-as-cartoon.html)。