Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在angularjs中从工厂/服务中获取javascript数组的价值_Javascript_Php_Angularjs_Ionic Framework - Fatal编程技术网

如何在angularjs中从工厂/服务中获取javascript数组的价值

如何在angularjs中从工厂/服务中获取javascript数组的价值,javascript,php,angularjs,ionic-framework,Javascript,Php,Angularjs,Ionic Framework,数组“chats”的作用域仅限于“.then”,并在“all”函数中为其值null angular.module('starter.services', []) .factory('Chats', function($http) { var chats=[]; result = ""; $http.get('http://localhost/Finalvts/AndroidData/GetDailySchedule.php') .success

数组“chats”的作用域仅限于“.then”,并在“all”函数中为其值null

    angular.module('starter.services', [])
    .factory('Chats', function($http) {
    var chats=[];
      result = "";
    $http.get('http://localhost/Finalvts/AndroidData/GetDailySchedule.php')
    .success(function(data, status, headers,config){
    console.log('data success');
    console.log(data); // for browser console
    var i=0;
    data.forEach(function (x) {
    x['id']=i;
    i++;
    })
      chats = data; // for UI
      console.log(chats);

        })
    .error(function(data, status, headers,config){
      console.log('data error');
    })
      .then(function(result){
      chats = result.data;
      console.log(chats);
    });
      return {
    all: function() {
      console.log(chats);
      return chats;

    },
      remove: function(chat) {
      chats.splice(chats.indexOf(chat), 1);
    },
  };
});

数组chats在控制台中不显示变量“data”返回的值…请给出一些建议。。。谢谢您…

您在从http请求获取数据之前返回聊天记录。这是因为
$http.get
是异步的,获取数据需要一定的时间。在获取数据时,您将返回当前具有
[]
的聊天数据。尝试在
中返回数据。然后()
。像这样的

angular.module('starter.services', [])
     .factory('Chats', function($http) {
         var chats = [];
         result = "";
         $http.get('http://localhost/Finalvts/AndroidData/GetDailySchedule.php')
             .success(function(data, status, headers, config) {
                 console.log('data success');
                 console.log(data); // for browser console
                 var i = 0;
                 data.forEach(function(x) {
                     x['id'] = i;
                     i++;
                 })
                 chats = data; // for UI
                 console.log(chats);

             })
             .error(function(data, status, headers, config) {
                 console.log('data error');
             })
             .then(function(result) {
                 chats = result.data;
                 console.log(chats);
                 return {
                     all: function() {
                         console.log(chats);
                         return chats;

                     },
                     remove: function(chat) {
                         chats.splice(chats.indexOf(chat), 1);
                     },
                 };
             });

     });
可能重复的