store.filter() not working as expected ember.js (Trying to search models)

前端 未结 1 940
北恋
北恋 2021-01-24 01:25

I am trying to implement a search system here and I am having some trouble with store.filter()

First of all I can\'t find any good documentation on the store.filte

相关标签:
1条回答
  • You just need to pass in a function that returns true/false for including the record

    App.IndexRoute = Ember.Route.extend({
      model: function() {
        return this.store.filter('color', function(item){
          return item.get('color')=='red';
        });
      }
    });
    

    http://emberjs.jsbin.com/OxIDiVU/647/edit

    If you want to make a call back to the server at the same time (find by query) you include the optional query param, the below example will call /colors?color=green

    App.IndexRoute = Ember.Route.extend({
      model: function() {
        return this.store.filter('color', {color:'green'}, function(item){
          return item.get('color')=='red';
        });
      }
    });
    
    /**
        Takes a type and filter function, and returns a live RecordArray that
        remains up to date as new records are loaded into the store or created
        locally.
    
        The callback function takes a materialized record, and returns true
        if the record should be included in the filter and false if it should
        not.
    
        The filter function is called once on all records for the type when
        it is created, and then once on each newly loaded or created record.
    
        If any of a record's properties change, or if it changes state, the
        filter function will be invoked again to determine whether it should
        still be in the array.
    
        Optionally you can pass a query which will be triggered at first. The
        results returned by the server could then appear in the filter if they
        match the filter function.
    
        Example
    
        ```javascript
        store.filter('post', {unread: true}, function(post) {
          return post.get('unread');
        }).then(function(unreadPosts) {
          unreadPosts.get('length'); // 5
          var unreadPost = unreadPosts.objectAt(0);
          unreadPost.set('unread', false);
          unreadPosts.get('length'); // 4
        });
        ```
    
        @method filter
        @param {String or subclass of DS.Model} type
        @param {Object} query optional query
        @param {Function} filter
        @return {DS.PromiseArray}
      */
    
    0 讨论(0)
提交回复
热议问题