簡體   English   中英

如何在angularjs中從工廠/服務中獲取javascript數組的值

[英]How to get value of javascript array out of factory/services in angularjs

數組'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);
    },
  };
});

聊天數組未顯示控制台中變量'data'返回的值...請提供一些建議...謝謝...

在從http請求中獲取數據之前,您需要返回聊天。 這是因為$http.get是異步的,並且需要花費一些時間來獲取數據。 在獲取數據的同時,您正在返回當前具有[]的聊天數據。 嘗試在.then()返回數據。 像這樣

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);
                     },
                 };
             });

     });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM