代码之家  ›  专栏  ›  技术社区  ›  Sow Hari

使用余烬计算属性(过滤器)过滤模型,并使用余烬模型表2以表格格式显示。没有可显示的记录

  •  0
  • Sow Hari  · 技术社区  · 6 年前

    尝试使用ember models表加载项显示用户详细信息。还想使用isActive字段过滤数据。Am使用该(过滤器)的余烬计算属性。第一次加载页面时,我得到了正确的结果。但当我尝试过滤时,我可以看到currentfilter的值正确通过,但没有得到任何结果。表格上没有显示记录。

    我的hbs代码:

        <div class="form-group">
            <label for="show">Show:</label>
            <select class="form-control" id="show" onchange={{action "filterUpdated" value="target.value"}}>
                <option value="null">All</option>
                <option value="true">Active</option>
                <option value="false">Inactive</option>
            </select>
        </div>
    
        {{models-table
    data=filteredPeople 
    columns=columns 
    showColumnsDropdown=false 
    useNumericPagination=true 
    filteringIgnoreCase=true 
    showPageSize=true
        }}
    

    我的控制器代码:

     users: alias('model'),
    currentFilter: null,
    
    filteredPeople: filter('users', function(user) {
    
      if(this.get('currentFilter') === null) {
        return true;
      } else {
        return user.isActive === this.get('currentFilter');
      }
    }).property('users', 'currentFilter'),
    
    actions: {
    
      filterUpdated: function (value) {
    
        alert(value);
        if (value=== null) {
          this.set('currentFilter', null);
        }
        else {
          this.set('currentFilter', value);
        }
      }
    

    请帮忙。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Sow Hari    6 年前

    检查后,我注意到这是一个愚蠢的错误,FilterUpdate方法返回字符串,而isActive字段需要一个布尔值。 我只是加入了下面的一行,将其更改为布尔值。

    var isActiveS=(this.get('currentFilter')==“true”);

    它成功了。

    推荐文章