2017-04-15 39 views
0

我有一個按鈕,當前將所選值傳遞給removeContract()在按鈕按下/事件觸發器上傳遞所選對象模型

<td class="col-md-1" colspan="1" style="text-align: center; vertical-align: middle;"> 
    <button class="btn btn-primary" data-ng-click="removeContract(ctrl.selectValue, contractIndex)">&nbsp;<=&nbsp;</button> 
</td> 
<td class="col-md-5" colspan="5"> 
    <label class="control-label">{{item.fields[132].displayName}}</label> 
    <select size="5" ng-model="ctrl.selectValue"> 
     <option data-ng-repeat="contract in contracts">{{contract.CONT_ORDNO}} - {{contract.SUPP_NAME}}[{{contract.SUPP_NUM}}]</option> 
    </select> 
</td>  

但是,我需要發回實際的當前合同模型,上面稱爲'合同'。函數的第一個參數需要是當前選定的合約。我將如何實現這一目標?

+0

如果你要選擇一個點擊的合同,那麼你可以添加事件偵聽器'onclick'添加的ID活躍於所選擇的合約 –

+0

@RandomDeveloper data-ng-click在角色中執行該作業。 –

+0

只是傳遞'ctrl.selectValue'來運作。你用'controllerAs'語法嗎?你的問題到底是什麼? –

回答

1

一些建議按照當前代碼:

  • 代替通過整個{{contract.CONT_ORDNO}} - {{contract.SUPP_NAME}}[{{contract.SUPP_NUM}}]到NG-模型只是通過contract.CONT_ORDNO從下拉識別所選擇的數據。

    <option data-ng-repeat="contract in contracts" value="contract.CONT_ORDNO">{{contract.CONT_ORDNO}} - {{contract.SUPP_NAME}}[{{contract.SUPP_NUM}}]</option> 
    
  • 正如我們已經有controller.Hence中的對象的數組合同,沒有必要通過第二個參數removeContract函數內。

    <button class="btn btn-primary" data-ng-click="removeContract(ctrl.selectValue)">&nbsp;&lt;&#61;&nbsp;</button> 
    
  • 基於所選擇的值,我們可以從contracts陣列與陣列filter()方法的幫助除去contract對象內部removeContract功能。

DEMO

var myApp = angular.module('myApp',[]); 
 

 
myApp.controller('MyCtrl', function($scope) { 
 
    $scope.contracts = [ 
 
     { 
 
     "CONT_ORDNO": "1", 
 
     "SUPP_NAME": "alpha", 
 
     "SUPP_NUM": "0001" 
 
     }, 
 
     { 
 
     "CONT_ORDNO": "2", 
 
     "SUPP_NAME": "beta", 
 
     "SUPP_NUM": "0002" 
 
     }, 
 
     { 
 
     "CONT_ORDNO": "3", 
 
     "SUPP_NAME": "gaama", 
 
     "SUPP_NUM": "0003" 
 
     }, 
 
     { 
 
     "CONT_ORDNO": "4", 
 
     "SUPP_NAME": "xyz", 
 
     "SUPP_NUM": "0004" 
 
     } 
 
    ]; 
 
    
 
    $scope.removeContract = function(selectedVal) { 
 
     var removedObj = $scope.contracts.filter(function(item) { 
 
     return item.CONT_ORDNO != selectedVal; 
 
     }); 
 
     console.log(removedObj); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="MyCtrl"> 
 
    <td class="col-md-1" colspan="1" style="text-align: center; vertical-align: middle;"> 
 
    <button class="btn btn-primary" data-ng-click="removeContract(ctrl.selectValue)">&nbsp;&lt;&#61;&nbsp;</button> 
 
</td> 
 
<td class="col-md-5" colspan="5"> 
 
    <label class="control-label">{{item.fields[132].displayName}}</label> 
 
    <select size="5" ng-model="ctrl.selectValue"> 
 
     <option data-ng-repeat="contract in contracts" value="{{contract.CONT_ORDNO}}">{{contract.CONT_ORDNO}} - {{contract.SUPP_NAME}}[{{contract.SUPP_NUM}}]</option> 
 
    </select> 
 
</td> 
 
</div>

相關問題