0

ここに示すように、顧客のリストを作成する ngRepeat があります。

<div ng-repeat="terr in terrData.data">
    <div class="customer-row" ng-click="clickCustomerSelect(terr)">
        <input class="customer-radio" type="radio" name="customer-select" ng-model="selectedCustomerRow" value="{{terr.customerID}}">
        <div class="contact-data-column">{{terr.custNm}}</div>  
        <div class="primaryphone-data-column">{{terr.primaryPhone}}</div>
        <!-- other customer data -->
    </div>
</div>

行がクリックされた場合、行のラジオボタンをチェックする必要があることを示す、customer-row div のクリック イベントがあります。

ここに示す基本的なコントローラ ロジック:

$scope.clickCustomerSelect = function(customer){
    $scope.selectedCustomerRow = customer.customerID.toString();
    //Other business logic
};

(ラジオ ボタンではなく) 顧客の行がクリックされるたびに、モデルが適切に更新され、その値に対応するラジオ ボタンがチェックされることがわかります。これは期待される機能であることに注意してください。

私が見ている問題は、ラジオ ボタンを手動でオンにすると (つまり、行をクリックしないで)、モデルが行のクリックによる更新に応答しなくなることです。

どういうわけか、ラジオボタンを選択すると、角度範囲の外に出てしまうのではないかと思いますか?

編集:サンプルモデル

terrData.data = [{
    "customerID": 1,
    "companyName": "Name 1",
    "custNm": "Blank",
    "primaryPhone": "111-111-1111"
}, {
    "customerID": 2,
    "companyName": "Name 2",
    "custNm": "Blank",
    "primaryPhone": "111-111-1112"
}, {
    "customerID": 3,
    "companyName": "Name 3",
    "primaryPhone": "111-111-1113"
}];
4

2 に答える 2

2
  $scope.selectedCustomerRow = customer.customerID.toString();

置換先:

 $scope.selectedCustomerRow = customer.customerID;

onclick で selectedCustomerRow を設定します。

HTMLで

 <input class="customer-radio" type="radio" name="customer-select" ng-model="selectedCustomerRow" value="{{terr.customerID}}">

置換先:

  <input class="customer-radio" type="radio" name="customer-select" ng-model="$parent.selectedCustomerRow" value="{{terr.customerID}}">

デモ

于 2013-09-24T19:20:53.480 に答える