2015-08-09 72 views
0

我通過ng-init方法通過動態id到控制器中的方法和通過ajax調用獲取響應。我正在嘗試打印未打印的回覆。我使用ng-repeat重複列表併爲列表中的每個元素調用ng-init。但是,即將到來的觀點並未得到更新。當我通過動態ID的角度js視圖沒有upadated

HTML代碼

<div class="col-xs-12 chalg-list" ng-repeat="element in elements"> 
<div class="col-sm-10 col-xs-9 pzero" ng-init="getActivity(element.id)">    
<p><span>Activity Names</span> <span>{{names._element.id}}</span></p> 
</div> 
</div> 



Javascript code 



$scope.getActivity(_id){ 
//getting response through ajax calls  
      $scope.names._id = data; //here every time dynamic id will come but the view not getting updated 
     console.log($scope.activities._id)  
    } 

請好心幫我,我的時間不多了

+0

沒有直接關係,但無論如何 - 你不應該使用NG-INIT初始化pruposes,做它在控制器中([docs](https://docs.angularjs.org/api/ng/directive/ngInit))。 – plamut

回答

0

我看到你的控制器中有元素。爲什麼需要從視圖中撥打getActivity?爲什麼不更好地從控制器中完成所有這些操作,並只需要重複顯示數據?

你有這樣的事情在你的控制器:

var arrElements = [1,2,3]; // your id's here 
$scope.elements =[]; 
arrElements.forEach(function(item){ 
    // get your data here for every id $http .... 
    // push it into the emelents 
    $scope.elements.push(....); 
}); 

在你看來:

<div class="col-xs-12 chalg-list" ng-repeat="element in elements"> 
    <!-- show your data here --> 
    {{element}} 
</div> 
+0

謝謝了! – karthik

1

好像角的$消化週期不被解僱。您如何通過$http服務或其他方式檢索AJAX內容? $scope.$appyAsync()很可能有幫助。

編輯:值得一提的是,如果你有機會讓Angular爲你做,那麼你應該使用它。例如,Angular的$http服務爲您自動觸發$ digest循環。

+0

我只使用$ http – karthik

+0

並且您在$ http的'success()'處理程序中更新範圍值?你能顯示所有的代碼嗎?您是否已經確認請求確實已成功完成? – plamut