2016-04-12 24 views
2

Son günlerde, neyi yanlış yaptığımı anlamaya çalışıyorum. Bir filtreye bir değer iletmeye çalışıyorum ve bir fabrikadan bir dönüşten oluşturulmuş bir hashtan bir dize döndürüyorum. Fabrikayı aramayan benzer bir işlevle çalışabilirim, ancak fabrikadan döndüğümde, uygun dizenin konsolda gösterilmesine rağmen dizeyi görüntüleyemiyorum. Burada gerçekten kolay bir şey mi kaçırıyorum? BuradaAçısal özel filtre görüntülenmiyor

Denetleyici: Burada

var app = angular.module('app', []); 
app.controller('ctrl', ['$scope', function($scope) { 
    $scope.stuff = 1; 
}]) 

Fabrika:

app.factory('factory', ['$q', function($q) { 
    var list = [ 
    {set1: 1,set2: 'name1'}, 
    {set1: 2,set2: 'name2'} 
    ]; 
    var list2 = [ 
    {set1: 1,set2: 'name6'}, 
    {set1: 2,set2: 'name7'} 
    ] 
    var service = { 
    getList: getList 
    } 
    return service; 

    function getList(id) { 
    var deferred = $q.defer(); 
    if (id === 1) { 
     deferred.resolve(list); 
    } else if (id === 2) { 
     deferred.resolve(list2); 
    } 
    return deferred.promise; 
    } 
}]) 

Filtre burada:

app.filter('customFilter', ['factory', function(factory) { 
    var factoryHash = {}; 
    return function(input, id) { 
    factory.getList(id) 
     .then(function(res) { 
     angular.forEach(res, function(value) { 
      this[value.set1] = value.set2; 
     }, factoryHash); 
     console.log('factoryHash', factoryHash[input]) 
     return factoryHash[input]; 
     }) 
    } 
}]) 

plnkr burada. Filtre herhangi bir şekilde idam ve söz fonksiyonunu sona erdiğinde zaten kullanıcı arayüzüne bir sonuca dönmek olacak çünkü

https://plnkr.co/edit/c4hYrRrdbBF9M2o5tVV5

cevap

5

Bir filtrenin içine bir söz kullanamazsınız.

+0

Teşekkürler Dalorzo! – Wes

İlgili konular