使用两个ng-model with angularjs

时间:2015-07-09 20:11:46

标签: javascript angularjs angularjs-filter

我写了这段代码

<label><input ng-model="filter['category']['auto']" value="auto" type="checkbox" name="category">Auto</label>
<label><input ng-model="filter['category']['music']" value="music" type="checkbox" name="category">Music</label>
控制器中的

$scope.filter = {};

我总是使用文件管理器过滤内容。一切都很好。但我想使用无线电而不是复选框来仅允许选择一个类别。我试过这段代码

<label><input ng-model="filter['category'][type]" value="auto" type="radio" name="category" ng-change="type='auto'>Auto</label>
<label><input ng-model="filter['category'][type]" value="music" type="radio" name="category" ng-change="type='music'">Music</label>

但它不起作用。

3 个答案:

答案 0 :(得分:0)

将来我肯定会做更多的事情来解释你得到的错误,而不只是说'它不起作用'。

但是,您在自动标签代码中缺少结束。

<label><input ng-model="filter['category']['type']" value="auto" type="radio" name="category" ng-change="type='auto'">Auto</label>

编辑:从其他答案添加'type'字符串

答案 1 :(得分:0)

要使用单选按钮,两个输入的ngModel应该相同。然后就不需要ngChange了。

<label><input ng-model="filter['category']" value="auto" type="radio" name="category">Auto</label>
<label><input ng-model="filter['category']" value="music" type="radio" name="category">Music</label>

这样你的filter对象就像

{ category: 'auto' }

 { category: 'music' }

使用原始代码,您最终会

{ category: { auto: 'auto', music: 'music' }

假设该类别是一个对象。如果不是你可能会收到错误。

答案 2 :(得分:0)

<label><input ng-model="filter['category']" value="auto" type="radio" name="category" ng-change="type='auto'">Auto</label>
<label><input ng-model="filter['category']" value="music" type="radio" name="category" ng-change="type='music'">Music</label>

这应该是shown here