【问题标题】:Access component method from filter从过滤器访问组件方法
【发布时间】:2015-10-04 17:12:57
【问题描述】:

我有一个用户管理页面,我可以在其中搜索用户并返回一个列表。

我希望能够根据角色过滤列表。

到目前为止,我有:http://laravel.io/bin/VPlYz

我无法从过滤器方法访问用户对象上的方法。我做错了什么?

filters: {
    roleFilter: function(users) {
        var self = this;

        if( this.roleFilter == 'all') {
            return users;
        }

        return users.filter(function(user) {
            // hasRole is reported undefined!
            user.hasRole(self.roleFilter);
        });
    }
}

【问题讨论】:

    标签: vue.js


    【解决方案1】:

    在一些^H的帮助下,我现在有以下几点:

    filters: {
        roleFilter: function(users) {
            var self = this;
    
            if( this.roleFilterModel == 'all') {
                return users;
            }
    
            return users.filter(function(userData) {
                // Convert the passed in data to a component
                var user = new self.$options.components.user({
                    data: userData
                });
                return user.hasRole(self.roleFilterModel);
            });
        }
    

    事实证明,过滤器在数据转换为组件之前运行在数据上,因此您需要手动执行此操作才能访问组件方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-05
      • 2018-11-09
      • 2015-04-10
      • 2020-11-26
      • 2017-03-04
      • 2019-02-02
      • 1970-01-01
      • 2017-08-08
      相关资源
      最近更新 更多