加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 具有嵌套属性的ng-table过滤器

发布时间:2020-12-17 06:47:26 所属栏目:安全 来源:网络整理
导读:我有以下 JSON: [{ "Id": "1","Data": {"Str1": "Ann","Str2": "Xenna"} },{ "Id": "2","Data": {"Str1": "Bob","Str2": "Bobby"},}] 我创建了ng-table来显示它.我试着添加过滤器.当我按Id过滤时,一切都按预期工作(过滤器为{“Id”:“2”}).但我无法创建适
我有以下 JSON:

[{
    "Id": "1","Data": {"Str1": "Ann","Str2": "Xenna"}
  },{
    "Id": "2","Data": {"Str1": "Bob","Str2": "Bobby"},}]

我创建了ng-table来显示它.我试着添加过滤器.当我按Id过滤时,一切都按预期工作(过滤器为{“Id”:“2”}).但我无法创建适当的过滤器做Str1和Str2字段.我已经尝试过:

> {“Str1”:“A”}
> {“Data.Str1”:“A”}
> {“Data [‘Str1’]”:“A”}

但上面的选项不起作用.

我的工作示例如下:http://plnkr.co/edit/MyJCqTlgvKLtSP63FYQY?p=preview

更新

感谢@Blackhole我创建了过滤器{Data:{Str1:’A’}}.但我只能在代码中进行delcare.当我尝试在HTML中添加这样的内容时,它甚至不会显示过滤器:

<td data-title="'Str1'" filter="{Data:{Str1: 'text'}}">
    {{ user.Data.Str1 }}
  </td>

解决方法

当您尝试在html中使用filter =“{Data:{Str1:’text’}}”时,输入未显示标题中的模板原因,请查看 source code.

<div ng-repeat="(name,filter) in column.filter"> //!!!! right here it's not supported
        <div ng-if="column.filterTemplateURL" ng-show="column.filterTemplateURL">
            <div ng-include="column.filterTemplateURL"></div>
        </div>
        <div ng-if="!column.filterTemplateURL" ng-show="!column.filterTemplateURL">
            <div ng-include="'ng-table/filters/' + filter + '.html'"></div>
        </div>
    </div>

就在这里< div ng-repeat =“(名称,过滤器)在column.filter”>它不是挖掘嵌套对象

Ngtable不支持默认模板中的嵌套过滤器,因此您可以创建自己的模板,它将支持它.看看example of header template.

注意

这个column.filter是如何初始化的,它是从td标签source上的filter属性解析的

var parsedAttribute = function (attr,defaultValue) {
                        return function (scope) {
                            return $parse(el.attr('x-data-' + attr) || 
                                          el.attr('data-' + attr) || 
                                          el.attr(attr))
                                (scope,{
                                $columns: columns
                            }) || defaultValue;
                        };
                    };

                    var parsedTitle = parsedAttribute('title',' '),headerTemplateURL = parsedAttribute('header',false),// here
                        filter = parsedAttribute('filter',false)(),filterTemplateURL = false,filterName = false;

                    ...
                    columns.push({
                        ....
                        filter: filter,

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读