AngularJS ngrepeat刷新帖子

时间:2015-01-20 23:10:09

标签: javascript angularjs angularjs-ng-repeat

首先,我是AngularJS和stackoverflow的新手,所以我非常开放。我的问题是我有一个表有3个项目使用ng-blur指令来调用保存功能  UI

<div ng-controller="measureController">
<div class="jumbotron">
    <h3>RatingYear</h3>
    <select ng-model="ratingYear" ng-change="getMeasures()">
        <option ng-repeat="year in years" value="{{year}}">{{year}}</option>
    </select>
</div> 
<!-- this is going to be the container for each measure-->
<div class="panel panel-default">
    <!-- Default panel contents -->
    <div class="panel-heading">Measures for {{ratingYear}}</div>
    <table class="table table-bordered table-hover">
        <tbody>
            <tr>
                <th>Code</th>
                <th>Name</th>
                <th>Action</th>
                <th>Active</th>
                <th>Order</th>
            </tr>
            <tr ng-repeat="measure in measureList track by measure.MeasureId">
                <td class="col-md-1">{{measure.Code}}</td>
                <td class="col-md-5">{{measure.Name}}</td>
                <td class="col-md-4"><textarea ng-model="measure.Action" ng-disabled="!measure.Active" ng-blur="save(measure)"></textarea></td>
                <td class="col-md-1"><input type="checkbox" ng-checked="measure.Active" ng-model="measure.Active" ng-change="save(measure)" /></td>
                <td class="col-md-1"><input class="form-control" ng-model="measure.Order" ng-disabled="!measure.Active" ng-blur="save(measure)" /> </td>
            </tr>
        </tbody>
    </table>
</div>

  </div>

控制器

function measureController($scope, $http) {
$scope.years = [2014,2015, 2016 ];

//get Measures Per Year
$scope.getMeasures = function () {
    $http.get('/api/measure/' + $scope.ratingYear)
         .success(function (data, status, headers, config) {
             $scope.measureList = data;
             $scope.$apply();
             //$scope.loading = false;
         })
         .error(function () {
             $scope.error = "An Error has occured while loading measures!";
             $scope.loading = false;
         });

};

//Edit Measure
$scope.save = function () {
    $scope.loading = true;
    var uMeasure = this.measure;
    var active = uMeasure.Active ? 1 : 0;
    $http.post('/api/measure/' + uMeasure.MeasureId + '/status/' + active, uMeasure)
        .success(function (data, status, headers, config) {
            $scope.measureList.push(data);
            $scope.$digest();
        })
        .error(function (data,status, headers, config) {
            alert("You failed misserably"+data);
        });

};
}

我希望每次使用已插入的新对象调用save时都能刷新measureList,即现有的修改副本,现在正在数据库中创建同一个的多个副本,我只能在重新加载页面或更改ratingYear中的值时看到它。

提前致谢

0 个答案:

没有答案