【发布时间】:2013-07-29 10:42:21
【问题描述】:
从option 元素传递对象时,我在select 元素上遇到了ng-model 问题。因此,假设我们有一个来自名为 columns 的表(表的定义)的列数组,我们想根据这个定义创建一些过滤器
var columns = [
{name: 'Account ID', type: 'numeric'},
{name: 'Full name', type: 'text'},
{name: 'Date of birth', type: 'date'},
{name: 'Active', type: 'boolean'}
// and so on
];
var filters = [{}];
HTML:
<div class="form-field" ng-repeat="filter in filters">
<select ng-model="filter">
<option value="" disabled>Choose filter</option>
<option ng-repeat="column in columns" ng-value="column">{{column.name}}</option>
</select>
<input type="text" ng-model="filter.value">
</div>
如您所见,我希望 filter 获取 column 的值并在其中添加特定数据,所以在某个时刻,我的过滤器可能是这样的:
[
{name: 'Account ID', type: 'numeric', value: 123},
{name: 'Active', type: 'boolean', value: 'Yes'}
]
无论如何,我不确定这是否是这样做的方式,但我想知道如何实现这种行为,而无需在控制器中编写大量 js 代码。
我做了一些解决方法来使用ng-change 完成此操作,传递filter 和column.name,在columns 数组中找到列,获取type 属性,更新filter,但我真的认为有一个更简单的答案。
【问题讨论】:
标签: angularjs angularjs-ng-repeat