角动态模型命名?

时间:2015-07-30 13:31:32

标签: angularjs dynamic angular-ngmodel

我学习角度,所以请温柔;)

我有一个填充了一些数据的表。我想在每列上添加过滤(不是角度过滤器,但是数据过滤器)。

我的想法是在标题的每列顶部添加一个文本框。然后在调用api获取数据时,使用这些文本框值在我的服务中创建Filters数组。

我目前有:

<tr>
                <th ng-repeat="column in report.Columns" ng-show="column.IsVisible">
                    <span class="sort" ng-click="updateSortOrder($index)" ng-class="{'sort-asc': predicate == $index && !reverse, 'sort-desc':predicate == $index && reverse}">{{ column.DisplayName }}</span>
                    <div class="input-group">
                        <span class="input-group-addon"><i class="fa fa-filter fa-fw"></i></span>
                        <input class="form-control" type="text" placeholder="Search" ng-model="">
                    </div>
                </th>
</tr>

我所坚持的是如何将文本框分配给ng-model,根据它们所代表的列动态命名它们。

我想过使用ng-model =&#34; column.ColumnName&#34; - 但是不会将文本框绑定到report.Columns.ColumnName?我不想编辑它,我想在每个范围上创建一个新的var。

类似于$ scope.Filters.- ColumnName-。

然后我想遍历$ scope.Filters上的每个ColumnName,并在我的服务调用中使用它在我的过滤器数组中的值。

我希望这是有道理的。如果我走错了路线来实现这一目标,请随意指出正确的方向,就像我说的那样,我刚刚开始学习Angular。

提前致谢

1 个答案:

答案 0 :(得分:0)

这与角度无关,特别是它更像是一个javascript问题。

对于变量属性名称,使用[]对象表示法

<input ng-model="filters[column]"

在控制器中:

$scope.filters ={}

如果尚未在范围对象中创建属性,ng-model将在有任何用户输入时自动创建它们