2017-06-27 142 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