Angular动态模型命名?
Angular dynamic model naming?
我正在学习angular,所以请温柔点;)
我有一个 table,其中填充了一些数据。我想在每一列上添加过滤(不是 angular 过滤器,而是数据过滤器)。
我的想法是在 header 中每一列的顶部添加一个文本框。然后在调用 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="column.ColumnName" - 但不会将文本框绑定到 report.Columns.ColumnName 吗?我不想编辑它,我想在范围内为每个变量创建一个新变量。
类似于 $scope.Filters.-ColumnName-。
然后我想遍历 $scope.Filters 上的每个 ColumnName 并在我的服务调用中使用它在我的过滤器数组中的值。
我希望这是有道理的。如果我走错了路来实现这一目标,请随时为我指明正确的方向,正如我所说,我刚刚开始学习 Angular。
提前致谢
这不是 angular 具体相关,它更像是一个 javascript 问题。
对于变量 属性 的名称,您使用 []
对象表示法
<input ng-model="filters[column]"
在控制器中:
$scope.filters ={}
如果尚未在范围对象中创建属性,ng-model
将在有任何用户输入时自动创建它们
我正在学习angular,所以请温柔点;)
我有一个 table,其中填充了一些数据。我想在每一列上添加过滤(不是 angular 过滤器,而是数据过滤器)。
我的想法是在 header 中每一列的顶部添加一个文本框。然后在调用 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="column.ColumnName" - 但不会将文本框绑定到 report.Columns.ColumnName 吗?我不想编辑它,我想在范围内为每个变量创建一个新变量。
类似于 $scope.Filters.-ColumnName-。
然后我想遍历 $scope.Filters 上的每个 ColumnName 并在我的服务调用中使用它在我的过滤器数组中的值。
我希望这是有道理的。如果我走错了路来实现这一目标,请随时为我指明正确的方向,正如我所说,我刚刚开始学习 Angular。
提前致谢
这不是 angular 具体相关,它更像是一个 javascript 问题。
对于变量 属性 的名称,您使用 []
对象表示法
<input ng-model="filters[column]"
在控制器中:
$scope.filters ={}
如果尚未在范围对象中创建属性,ng-model
将在有任何用户输入时自动创建它们