2015-11-03 109 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