2017-01-18 2 views
0

Ich mag Werte von Array-Index + in Javascript AngularJS wie ng-repeat erhalten, aber in meinem ControllerWie Werte in Javascript von Array holen + AngularJS

Array[0] 
    0: Object 
    class:"text-area" 
    text: "Arif#2:hi bro" 
    time_stamp: 1484644646user_ 
    chat_img: "images/noimage.jpg" 
    __proto__: Objectlength: 1__proto__: Array[0] 

Jetzt i wie „Klasse Klassennamen drucken möchten = text-Bereich“, und dies wird Dank

hier eine Schleife ist mein Code

$scope.p=get_chat_history(); this function give me array 
console.log('key',$scope.p); 

Leider fo alles, was ich sehr Anfänger bin ich einige mo hinzufügen re Detail

function get_chat_history() { 
     var data = []; 
     var time_stamp = ''; 
     $timeout(function() { 
      $scope.time_stamp = window.localStorage.getItem('time_stamp'); 

     }, 3000); 
     console.log('time_stamp', $scope.time_stamp); 
     if (!$scope.time_stamp) { 
      $scope.time_stamp = Date.now(); 
     } 
     $http({ 
      url: "https://testing.twodegrees.io/chat/history/" + my_chat_id + "/" + my_chat_friend_id + "/" + $scope.time_stamp, 
      headers: { 
       'X-TWO_DEGREE-APP_ID': 'test_Anonymous_786', 
       'X-TWO_DEGREE-APP_TOKEN': actoken 
      }, 
      method: 'GET' 
     }).then(function mySucces(success_res) { 


      // console.log(' history data',success_res); 
      var chat_images_images = []; 
      for (var p = 0; p < success_res.data.chats.length; p++) 
      { 
       console.log('p', p); 
       chat_images_images[p] = []; 
       var message_body = success_res.data.chats[p].body; 
       var myJSON = JSON.parse(message_body); 
       var time_stamp = success_res.data.chats[p].time_stamp; 
       var myJSON2 = JSON.parse(time_stamp); 
       if (myJSON.sname == my_name) { 
        var class_name = 'text-area2'; 
       } else { 
        var class_name = 'text-area'; 
       } 
       //console.log('time_stamp',myJSON2); 
       if (p == 0) { 
        window.localStorage.setItem('time_stamp', myJSON2); 
       } 

       var newtest = { 
        text: myJSON.text, 
        class: class_name, 
        user_chat_img: "images/noimage.jpg", 
        time_stamp: myJSON2 
       } 
       // console.log('chat history',myJSON); 
       data.push(newtest); 

      } 
      // console.log('chat history',data); 

     }); 

     var urle = "https://testing.twodegrees.io/chat/history/" + my_chat_id + "/" + my_chat_friend_id + "/" + $scope.time_stamp; 

     console.log('url history', urle); 

     return data; 

    } 

diese Funktion mir ein Array senden, und ich will diesen

+0

Können Sie y posten unser Code hier oder ein Link zu einem jsfiddle/jsbin etc? – rrd

+0

Bieten Sie uns mehr Details .... wie, was Sie erreichen möchten ... mit Ihren Versuchen – Kenny

+0

Ich bekomme dies aus meiner Sicht mit einer Schleife ng-repeat, aber ich möchte jetzt dies in meinem Controller aus meiner Sicht bekomme ich wie Diese ng-repeat = "Nachricht in MyMessages" und dann {{message.class}} –

Antwort

0

EDIT

verwenden scheint, wie Sie verwirren mit dem Asynchron-Aufruf und iterieren über die Anordnung vor dem http Versprechen ist gelöst. Ich gehe hier davon aus, dass Ihr get_chat_history ein asynchroner (api) Anruf ist.

Statt $scope.p = get_chat_history() sollten Sie wahrscheinlich so etwas tun:

get_chat_history().then(function(response) { 
    $scope.p = response; 
    // now you can iterate over the array, because the http promise is resolved 
    // see below function to do that 
}); 

Wenn ich richtig verstehe, wollen Sie über das Array zu durchlaufen und dann über alle seine Werte. Sie können das tun, indem angular.forEach mit:

// Iterate over array 
angular.forEach($scope.p, function(item) { 
    // Iterate over object keys 
    angular.forEach(item, function(value, key) { 
     console.log(key + "=" + value); 
    }); 
}); 
0

Wenn Sie es einfach wollen Sie es wie

for(var i=0; i<$scope.p.length; i++){ 
    console.log($scope.p[i].class); 
    console.log($scope.p[i].text); 
} 

tun können, wenn dies nicht in der Steuerung funktioniert können Sie versuchen, wie

get_chat_history().then(function(res) { 
    $scope.p = res; 
    for(var i=0; i<$scope.p.length; i++){ 
     console.log($scope.p[i].class); 
     console.log($scope.p[i].text); 
    } 
} 

Oder

get_chat_history().then(function(res) { 
    for(var i=0; i<res.length; i++){ 
     console.log(res[i].class); 
     console.log(res[i].text); 
    } 
} 
+0

Dies funktioniert mit ng-repeat in meiner Sicht, aber nicht in meinem Controller –

+0

@NazarHussain Ich kann Machen Sie eine begründete Vermutung, dass Ihre 'get_chat_history()' eine asynchrone Funktion ist? – devqon

Verwandte Themen