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 回答
0

您的问题可能是这样的:https ://stackoverflow.com/a/17607794/170407

简短的回答:ng-model几乎总是需要一个点。

于 2013-09-24T19:32:16.377 回答