2013-05-29 21 views
1

Error: this.filters.forEach is not a function的forEach內提供服務AngularJS

.provider('searchFilter', function() { 
    this.filters = { 
    location : { 
     default: 'Boston, MA', 
     value: '' 
    }, 
    radius : { 
     default: '1', 
     value: '' 
    } 
    } 
    this.$get = function() { 
     var filters = this.returnFilters(); 
     return { 
      returnFilters: function() { 
      return filters; 
      } 
     } 
    }; 
    this.setLocation = function(location) { 
     this.filters.location.default = location; 
    }; 
    this.setRadius = function(radius) { 
     this.filters.radius.default = radius; 
    }; 
    this.returnFilters = function() { 
    this.filters.forEach(function (filter) { 
     filter.value = (filter.value=='')?filter.default:filter.value; 
    }); 
    return this.filters; 
    }; 
}); 

爲什麼不能我用forEach一個.provider服務裏面?

+0

看起來您在過濾器定義中有一個小的語法錯誤。注意最後一個屬性後面的','。 –

+1

@TravisJ不錯,但不是很不幸。 –

回答

0

filters是一個對象,它沒有「forEach」方法。但是,您可以使用for(.. in ..)Object.keys(..).forEach(或者我認爲是angular.each

+0

我在我的JSON資源調用響應中使用'forEach',這是對象。有什麼不同? –

+0

他們是數組,而不是對象。 '[.forEach' exists,'({})。forEach'不是 – Ven

+0

資源調用似乎是控制檯日誌中的類型對象? '對象{a:'b',c:'d'}'然而我運行'forEach'關於那些返回的數據。 –