Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了angularjs – 具有嵌套属性的ng-table过滤器大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下 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,

大佬总结

以上是大佬教程为你收集整理的angularjs – 具有嵌套属性的ng-table过滤器全部内容,希望文章能够帮你解决angularjs – 具有嵌套属性的ng-table过滤器所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: