AngularJS - 带单选按钮和布尔值的Ng-repeat

时间:2015-11-09 13:25:11

标签: angularjs radio-button angularjs-ng-repeat

我有一组Book个 - 对象,每个对象都有boolean属性Favorite。只有其中一本书的收藏夹设为true

我使用ng-repeat显示这些图书,我希望能够使用单选按钮设置喜爱的图书。但是,即使在页面加载时选择了正确的单选按钮,当我选择不同的单选按钮时,模型也不会更新布尔值。

这是我的代码:

<ul>
    <li ng-repeat="book in vm.Books">
        {{book.Name}}
        <input name="book" type="radio" ng-model="book.Favorite" ng-value="book.Favorite" /> 
    </li>
<ul>

如何使用正确的Favorite - 基于选中的单选按钮更新模型?

1 个答案:

答案 0 :(得分:3)

以下内容已关闭,但当您选择另一个时,book.Favorite不会将false设置为<li ng-repeat="book in vm.Books"> {{book.Name}} <input name="book" type="radio" ng-model="book.Favorite" ng-value="true"> </li> (我认为您想要?):

<li ng-repeat="book in vm.Books">
  {{book.Name}}
  <input type="radio" ng-click="vm.setFavorite(book)" ng-checked="book.Favorite">
</li>

我会这样做:

vm.setFavorite = function(book) {

  vm.Books.forEach(function(b) {
    b.Favorite = book === b;
  });
};

UPDATE [dbo].[EmailRequest]
    SET [HoldDate] = NULL, [Status] = 'OffHold'
    WHERE [HoldDate] < GETDATE();

演示: http://plnkr.co/edit/UKGQW1dd8M5UiEbUCxWd?p=preview