ng-model不使用角度单选按钮

时间:2016-04-19 20:39:12

标签: angularjs angularjs-controller angular-ngmodel angularjs-ng-model ng-submit

我有一个带有单选按钮的简单表单,它从服务器中提取值并循环显示它们以提供单选按钮:

<form ng-submit="createSubCategory(subcategory)">
    <div ng-repeat="sub_category in event_sub_categories" >
        <label class="item item-radio">
                  <input type="radio" ng-model="subcategory" ng-value="'{{sub_category}}'" >
                  <div class="radio-content">
                    <div class="item-content">
                      {{sub_category}}
                    </div>
                    <i class="radio-icon ion-checkmark"></i>
                  </div>
         </label>
    </div>
    <div class="padding">
        <button type="submit" class="button button-block button-positive">Continue</button>
    </div>
</form>

表单完美显示。但是,我按下的单选按钮似乎并没有保存。这是createSubCategory方法:

$scope.createSubCategory = function(subcategory){
  console.log(subcategory);
}

日志显示undefined。填写表格后如何记录子类别?

1 个答案:

答案 0 :(得分:7)

ng-repeat创建自己的范围。由于您将单选按钮绑定到subcategory,因此填充的是ng-repeat范围的subcategory字段,而不是控制器范围{{1} } field。

经验法则:

  • 在你的ng-model中总是有一个点
  • 始终创建包含您要绑定到
  • 的字段的对象

此外,ng-value需要一个角度表达式。

所以,在你的控制器中,有这个:

$scope.formModel = {};

在视图中:

<input type="radio" ng-model="formModel.subcategory" ng-value="sub_category" >