【问题标题】:Angular JS object as ng-model attribute nameAngular JS 对象作为 ng-model 属性名称
【发布时间】:2014-11-01 04:43:07
【问题描述】:

我正在创建一个动态 Angular js 应用程序,其中我想使用一个文本框作为表格过滤器的搜索文本。这是我正在做的事情的预览:

截至目前,我的代码如下所示

<table>
                <thead>
                    <tr class="filterrow">
                        <td data-ng-repeat="col in items.Properties">
                            <input id="{{col.DatabaseColumnName}}" type="text" 
                               data-ng-model="search_{{col.DatabaseColumnName}}"/> 
<!-- Above Here I want to dynamically assign the ng-model based on Databasecolumnname property-->
                        </td>
                    </tr>
                    <tr>
                        <th data-ng-repeat="col in items.Properties">{{col.ColumnTitle}}</th>
                    </tr>
                </thead>
                <tbody>
                    <tr data-ng-repeat="content in items2.Contents | filter: search_{{col.DatabaseColumnName}}: search_{{col.DatabaseColumnName}}">
                        <td data-ng-repeat="col in items.Properties">
                            <a href="#">{{content[col.Databasecolumnname ]}}</a>
                        </td>
                    </tr>
                </tbody>
            </table>

我已经尝试过使用 $compile 的方法,但我无法实现它。有什么想法吗?谢谢!

编辑:Plnkr - plnkr.co/edit/5LaRYE?p=preview

【问题讨论】:

  • 当你给我们的信息这么少的时候,这很难帮助你,你能用你的完整代码设置一个 jsFiddle 或 plnkr 吗?你能分享一下“项目”结构的片段吗?谢谢!
  • 我已经在 PSL 的评论中分享了我的 plnkr 作为评论。已经解决了。还是谢谢!

标签: javascript angularjs filter angular-ngmodel


【解决方案1】:

您可以通过为您的 ng-Models 设置基础对象来做到这一点。因此,在您的控制器中,您将拥有:-

 $scope.search = {}; 

并且在你看来:-

 <input ng-attr-id="{{col.DatabaseColumnName}}" type="text" 
                           data-ng-model="search[col.DatabaseColumnName]"/> 

这样,您的动态 ng-model 将被分配给搜索基础对象,例如:- 如果 col.DatabaseColumnNamecol1 那么 ngModel 将是 $scope.search.col1

【讨论】:

  • 非常感谢您!我开悟了! :) 过滤部分怎么样?我可以这样做: ?
  • 不客气.. :)。过滤器可能很棘手(我不确定您的数据结构)您可以在 plunker 中准备一个带有示例数据结构的演示吗...?
  • @HannahRichards 你只需要这样做:| filter: filters 如果我对你的要求的理解是正确的。此外,您的 plunker 也有一些问题。在此处查看演示 plnkr.co/edit/nCPxFR?p=preview 尝试过滤输入 Id 文本框
猜你喜欢
相关资源
最近更新 更多
热门标签