【问题标题】:Ember.js - how to filter a model?Ember.js - 如何过滤模型?
【发布时间】:2013-06-26 21:48:33
【问题描述】:

我正在尝试找出如何最好地创建一种方法来使用 Ember.js 基于属性提取特定对象。

现在我的模型看起来像这样:

App.Resume = Ember.Object.extend()

App.Resume.reopenClass
    store: {}

    findAll: ->
        arr = Ember.ArrayProxy.create()

        if xhr
            xhr.abort()
            return

        xhr = $.ajax(
            url: '../json/cv.json'
            dataType: 'json'
            timeout: 10000
            ).done (response) =>
                response.users.forEach (user, i) =>
                    cv = @findOne(user.personId)
                    cv.setProperties(user)
                    return
                values = (values for keys, values of @store)
                arr.set('content', values)

        arr

    findOne: (id) ->
        cv = @store[id]
        if not cv
            cv = App.Resume.create
                id: id
            @store[id] = cv
        cv

如果您查看 done 回调中的循环,您会看到它正在使用 user.id 创建模型 - 还有一个 user.specialization 字段。这是我希望能够过滤的字段。

任何想法/帮助将不胜感激!

谢谢!

丰富

【问题讨论】:

    标签: javascript model filter ember.js coffeescript


    【解决方案1】:

    您可以在任何 Ember 上使用 filterProperty Enumerable,例如 ArrayArrayProxy。它默认匹配存在。您还可以传入一个参数以匹配数组中的每个属性。您可以将其与计算属性配对以在您的视图中绑定。

    filtered: function() {
      return this.get('products').filterProperty('outOfStock')
    }.property('products')
    

    请参阅此jsbin 以获取示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-24
      相关资源
      最近更新 更多