更新数组后如何更新ng-repeat

时间:2015-11-03 06:07:21

标签: angularjs angularjs-scope angularjs-ng-repeat

我有一个跟随控制器

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

在我看来,我有以下代码,

 <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列表不会更新。我希望在添加停止时更新视图。我从角度材料对话框中获取用户输入。

4 个答案:

答案 0 :(得分:1)

在控制器中更新数据后,数据将在视图中自动更新。您遇到的问题(可能是)是addStop函数中的拼写错误。

更新列表时使用了两个点。 &GT;&GT; $scope..list=stops;

答案 1 :(得分:1)

您无需按stop

直接推送到$scope.list

当在列表中分配停止时,它将分配参考如果一个被更新,另一个也将

$scope.list=stops;

喜欢这个

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

答案 2 :(得分:0)

试试这个

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

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

答案 3 :(得分: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;
}

我使用过静态数据,但应该没有任何问题