我是ionic1框架的新手,并在sidemenu离子应用程序上工作。我正在使用cordova local notification
工作正常,但我需要在$ionicPlatform.ready
内发送有关特定条件的通知。对于条件,我使用$http
从webservice获取数据,但遗憾的是我无法从$http
中检索数据。
$ionicPlatform.ready(function() {
var conditionvariable="true";
$http.get("http://www.example.com/abc.php").then(function(response)
{
var test = response.data[0];
if(test.result=='test')
{
conditionvariable="false";
}
});
alert(conditionvariable);
})
我无法从函数$http.get
函数中获取数据。如果我试图提醒它退出该功能,则会提醒undefined
请帮助您获取数据。
答案 0 :(得分:0)
这是因为$ http是一个异步调用,然后当来自http调用的响应可用时调用(), 并且在网络呼叫提供响应之前,您的alert()会同步执行。
在这里详细阅读 Why is my variable unaltered after I modify it inside of a function? - Asynchronous code reference
$ionicPlatform.ready(function() {
var conditionvariable="true";
$http.get("http://www.example.com/abc.php").then(function(response)
{
var test = response.data[0];
if(test.result=='test')
{
conditionvariable="false";
}
alert(conditionvariable);
});
})
现在,当您从$ http电话获得响应时,您的警报就会运行。
希望这会有所帮助...