Skip to content

Instantly share code, notes, and snippets.

@katowulf
Last active November 7, 2019 21:10

Revisions

  1. katowulf revised this gist Oct 15, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion filter_using_extend.js
    Original file line number Diff line number Diff line change
    @@ -2,7 +2,7 @@
    app.factory('FilteredArray', function($firebaseArray) {
    function FilteredArray(ref, filterFn) {
    this.filterFn = filterFn;
    $firebaseArray.call(this, ref);
    return $firebaseArray.call(this, ref);
    }
    FilteredArray.prototype.$$added = function(snap) {
    var rec = $firebaseArray.prototype.$$added.call(this, snap);
  2. katowulf revised this gist Oct 15, 2015. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions filter_using_extend.js
    Original file line number Diff line number Diff line change
    @@ -14,8 +14,8 @@ app.factory('FilteredArray', function($firebaseArray) {
    });

    app.controller('...', function($scope, FilteredArray) {
    var ref = new Firebase(...);
    var ref = new Firebase('https://kato-books.firebaseio.com/');
    $scope.data = FilteredArray(ref, function(rec) {
    return rec.foo !== 'bar';
    return rec.author !== 'Stephen King';
    })
    });
  3. katowulf revised this gist Oct 15, 2015. 1 changed file with 6 additions and 7 deletions.
    13 changes: 6 additions & 7 deletions filter_using_extend.js
    Original file line number Diff line number Diff line change
    @@ -4,14 +4,13 @@ app.factory('FilteredArray', function($firebaseArray) {
    this.filterFn = filterFn;
    $firebaseArray.call(this, ref);
    }
    return $firebaseArray.$extend(FilteredArray, {
    $$added: function(snap) {
    var rec = $firebaseArray.prototype.$$added.call(this, snap);
    if( !this.filterFn || this.filterFn(rec) ) {
    return rec;
    }
    FilteredArray.prototype.$$added = function(snap) {
    var rec = $firebaseArray.prototype.$$added.call(this, snap);
    if( !this.filterFn || this.filterFn(rec) ) {
    return rec;
    }
    });
    };
    return $firebaseArray.$extend(FilteredArray);
    });

    app.controller('...', function($scope, FilteredArray) {
  4. katowulf revised this gist Oct 15, 2015. 1 changed file with 0 additions and 4 deletions.
    4 changes: 0 additions & 4 deletions filter_using_extend.js
    Original file line number Diff line number Diff line change
    @@ -10,10 +10,6 @@ app.factory('FilteredArray', function($firebaseArray) {
    if( !this.filterFn || this.filterFn(rec) ) {
    return rec;
    }
    },

    filter: function(filterFn) {
    this.filterFn = filterFn;
    }
    });
    });
  5. katowulf revised this gist Oct 15, 2015. 1 changed file with 5 additions and 1 deletion.
    6 changes: 5 additions & 1 deletion filter_using_extend.js
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,10 @@
    // this will be much more efficient than $watch()
    app.factory('FilteredArray', function($firebaseArray) {
    return $firebaseArray.$extend({
    function FilteredArray(ref, filterFn) {
    this.filterFn = filterFn;
    $firebaseArray.call(this, ref);
    }
    return $firebaseArray.$extend(FilteredArray, {
    $$added: function(snap) {
    var rec = $firebaseArray.prototype.$$added.call(this, snap);
    if( !this.filterFn || this.filterFn(rec) ) {
  6. katowulf revised this gist May 11, 2015. 2 changed files with 0 additions and 17 deletions.
    16 changes: 0 additions & 16 deletions 1_simple_filter.js
    Original file line number Diff line number Diff line change
    @@ -1,16 +0,0 @@

    // this should work for small numbers, less than hundreds
    app.controller('...', function($scope, $firebaseArray) {
    $scope.data = [];
    var ref = new Firebase(...);
    var arr = $firebaseArray(ref);
    arr.$watch(rebuild);
    function rebuild() {
    $scope.data.length = 0;
    angular.forEach(rec) {
    if( rec.foo !== 'bar' ) {
    $scope.data.push()
    }
    }
    }
    });
    1 change: 0 additions & 1 deletion 2_filter_using_extend.js → filter_using_extend.js
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,3 @@

    // this will be much more efficient than $watch()
    app.factory('FilteredArray', function($firebaseArray) {
    return $firebaseArray.$extend({
  7. katowulf created this gist May 11, 2015.
    16 changes: 16 additions & 0 deletions 1_simple_filter.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,16 @@

    // this should work for small numbers, less than hundreds
    app.controller('...', function($scope, $firebaseArray) {
    $scope.data = [];
    var ref = new Firebase(...);
    var arr = $firebaseArray(ref);
    arr.$watch(rebuild);
    function rebuild() {
    $scope.data.length = 0;
    angular.forEach(rec) {
    if( rec.foo !== 'bar' ) {
    $scope.data.push()
    }
    }
    }
    });
    23 changes: 23 additions & 0 deletions 2_filter_using_extend.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,23 @@

    // this will be much more efficient than $watch()
    app.factory('FilteredArray', function($firebaseArray) {
    return $firebaseArray.$extend({
    $$added: function(snap) {
    var rec = $firebaseArray.prototype.$$added.call(this, snap);
    if( !this.filterFn || this.filterFn(rec) ) {
    return rec;
    }
    },

    filter: function(filterFn) {
    this.filterFn = filterFn;
    }
    });
    });

    app.controller('...', function($scope, FilteredArray) {
    var ref = new Firebase(...);
    $scope.data = FilteredArray(ref, function(rec) {
    return rec.foo !== 'bar';
    })
    });