IONIC:无法从`$ ionicPlatform.on`方法

时间:2017-02-25 13:17:46

标签: javascript angularjs cordova ionic-framework

我是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

请帮助您获取数据。

1 个答案:

答案 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电话获得响应时,您的警报就会运行。

希望这会有所帮助...