2016-01-14 57 views
1

我使用angularfire爲我的項目,並已經歷了$firebaseObject以下限制:

  1. orderByfilter不會對他們的工作
  2. 我不能」 t直接操縱它們作爲js文件中的對象

不能做但$firebaseObject可以嗎?

+1

當你有對象的列表,你應該使用'$ firebaseObject'當你有一個單一的對象和'$ firebaseArray'。沒有看到你的代碼,就不可能說你打哪個案子。 –

+0

爲什麼要盲目使用firebaseObject而不是firebaseArray?是否有一個原因(性能,功能...)使其成爲Array的可行選擇?如果你查詢一個數組並且只有一個結果,它將返回一個長度爲1的數組,如果沒有一個是0的話。另一方面,如果你查詢一個對象並找到一個,確定你得到了你的對象,但是如果你找不到任何你必須看看或$價值=== null這是不太實際的使用,然後長度。 – Void

回答

0

以下是來自Firebase的文檔。 https://www.firebase.com/docs/web/libraries/angular/api.html#angularfire-firebasearray

如果您想對對象進行排序,請將它們視爲數組。請參閱here的解決方案。

app.filter('toArray', function() { return function(obj) { 
    if (!(obj instanceof Object)) return obj; 
    return _.map(obj, function(val, key) { 
     return Object.defineProperty(val, '$key', {__proto__: null, value: key}); 
    }); 
}}); 

示例標記:

<div ng-repeat="val in object | toArray | orderBy:'priority' | filter:fieldSearch"> 
    {{val.$key}} : {{val}} 
</div>