2017-06-27 101 views
0

我有我的控制器功能,我从数据库中检索我的所有数据(ID,姓名,鄂麦,回顾):编辑输入

function loadAll() { 
     UniversalService.GetAll() 
      .then(function (a) { 
       $scope.all=a; 
      }); 
    } 

然后我在打印这样的html:

<div class="row comment-table" ng-repeat="item in all "> 
     <div class="col-md-1"> 
      <img ng-src="http://www.gravatar.com/avatar/{{hash[$index]}}" alt="Description" /> 
     </div> 

     <div class="col-md-9"> 
       <p>Review posted by: {{item.name}}</p>   
       <p>{{item.review}}</p> 
       <span uib-rating ng-model="rate" max=5 on-hover="hoveringOver(value)" on-leave="overStar = null" titles="['one','two','three']" aria-labelledby="default-rating"></span> 
       <span class="label" ng-class="{'label-warning': percent<30, 'label-info': percent>=30 && percent<70, 'label-success': percent>=70}" ng-show="overStar && !isReadonly">{{percent}}%</span> 
     </div> 



    </div> 

现在,我为每个评论添加了编辑和删除按钮。但我不确定如何实际编辑特定的审阅,因为我需要在输入中包含这些值,以及如何删除它们。当我用loadAll()打印我的值时可以吗?

+0

你可以有一个独立的编辑和删除与NG重复的每个数据相关的按钮,当你点击特定的编辑/删除按钮,显示一个弹出窗口,其中包含预先填入所选项目值的各个输入字段。 –

回答

1

通过使用$index

在你HTML:

<div class="row comment-table" ng-repeat="item in all "> 
    <div class="col-md-1"> 
     <img ng-src="http://www.gravatar.com/avatar/{{hash[$index]}}" alt="Description" /> 
    </div> 

    <div class="col-md-9"> 
     <p>Review posted by: {{item.name}}</p>   
     <p>{{item.review}}</p> 
     <button ng-click="edit($index)">Edit</button> 
     <button ng-click="delete($index)">Delete</button> 
    </div> 
</div> 

然后在你的控制器:

$scope.edit = function(index) { 
    $scope.all[index] = // Your logic here. 
}; 

$scope.delete = function(index) { 
    $scope.all[index] = // Your logic here. 
}; 
+0

我认为,而不是'$ index'我应该通过'item.id'以知道哪一个编辑/删除,对吧? – user122222

+1

'$ index'是当前项目索引中的位置。 'item.id'可以是你放置的任何值。如果你想使用'$ scope.all [index]',你需要使用'$ index'。否则为了找到当前项目,您需要使用“reduce”功能。 –

+0

令人惊叹的答案,帮助了我很多! – user122222