2015-11-03 115 views
0

我有一個跟蹤控制更新陣列

app.controller('MainController', function($scope, $interval,$mdToast, $document, $mdDialog,$timeout,$mdDialog) { 
var stops=[ 
    { 
     stopName:"testinput1", 
     noOfStudents:2 
    }, 
    { 
     stopName:"testinput2", 
     noOfStudents:2 
    }, 
    { 
     stopName:"testinput3", 
     noOfStudents:4 
    } 
]; 

$scope.list=stops; 


$scope.addStop=function(name,noOfstudent){ 
    stops.push({ 
     stopName:name, 
     noODstudent:noOfstudent  
     }) 
    $scope.list=stops; 
} 
}); 
在我看來

我有下面的代碼後如何更新NG重複,

<md-list id="stopList"> 
     <md-list-item class="md-3-line" ng-repeat="item in list" style="background:rgb(233, 233, 233);margin:10px;padding-left: 10px;position: relative;min-height: 60px;"> 
     <div class="md-list-item-text"> 
      <h3>{{item.stopName}}</h3> 
      <h4>{{item.noOfStudents}}</h4> 
     </div> 
      <div ng-show="deleteIcon" ng-click="showConfirm($event);" class='delete_icon'></div> 
     </md-list-item> 
    </md-list> 

我現在面臨的問題是,當我添加停止,ng-repeat列表不會被更新。我希望在添加停止時更新視圖。我正在從角度材質對話框中獲取用戶輸入。

+0

你確定它的$ scope..list =停止;? – ThisIsMarkSantiago

+0

我知道這不是一個答案。但是'$ scope..list = stops'有兩個點,'我猜是錯誤的。將代碼複製到編輯器中可能會出現問題。 –

+0

不,這是一個錯誤 – John

回答

1

在控制器中更新數據後,數據將在視圖中自動更新。您面臨的問題(可能)是addStop函數中的拼寫錯誤。

更新列表時,您使用了兩個點。 >>$scope..list=stops;

+0

嘗試把數據放在$ scope.stops = {list:stops};並相應地重複。 由於有時使用作用域對象與rootScope衝突。所以... – binariedMe

+0

嘗試過但不工作 – John

+0

問題可能出現在其他地方,您可以在@maddog的答案中看到,他有工作。 – binariedMe

1

你不需要推到stop

只需直接推$scope.list

當停止分配中如果有更新就會隨之

它會配參考列表
$scope.list=stops; 

像這樣

$scope.list.push({ 
    stopName: name, 
    noODstudent: noOfstudent 
}) 
+0

我已經添加此塊addStop(),但不工作 – John

0

試試這個

$scope.addStop = function (name, noOfstudent) { 
    stops.push({ 
     stopName: name, 
     noODstudent: noOfstudent 
    }); 

    $timeout(function() { 
     $scope.list = []; 
     $scope.list = stops; 
    }, 0); 
}; 
+0

不是理想的方式 – batmaniac7

0

這裏是一個plnkr: http://plnkr.co/edit/HlzxQ9sqbMbxDiraT22z?p=preview 似乎是爲我工作

var name = 'l' 
var noOfStudents = 5 

$scope.addStop=function(){ 
stops.push({ 
    stopName:name, 
    noOfStudents:noOfStudents  
    }) 
$scope.list=stops; 
} 

我已經使用靜態數據,但不應該有任何問題

+0

是的,謝謝它正在工作,但當我從對話框調用addStop(),然後它不工作......實際上我使用對話框輸入 – John

+0

你可以爲它創建一個plnkr嗎?可能還有其他問題 – batmaniac7