查询参数允许在emberjs中使用值

时间:2014-10-01 02:18:09

标签: javascript ember.js

我正在使用ember的查询参数来按一种布局过滤结果列表。我想检查指定的查询是否在availableLayouts中。我知道我可以检查值是否在这个数组中,但我不确定ember在什么时候设置“layout”参数。是否有一个方法或操作被调用,我可以覆盖set调用以确保它存在于availableLayouts中?

queryParams: ['filter', 'layout']
layout: 'grid'
availableLayouts: ['grid', 'list']

1 个答案:

答案 0 :(得分:2)

您可以使用计算属性来完成您想要的任务。

您可以执行类似

的操作
  queryParams: ['filter', 'layout'],
  layout: 'grid',
  availableLayouts: ['grid', 'list'],
  isLayoutAvailable: function(){
    var layout = this.get('layout');
    var availableLayouts = this.get('availableLayouts');
    return availableLayouts.contains(layout);
  }.property('layout', 'availableLayouts.[]')

会创建一个isLayoutAvailable属性,如果布局位于availableLayouts数组中,该属性会自动更新

你可以在这里看到一个工作箱:http://emberjs.jsbin.com/gaker/1/edit?html,js,output