2012-11-14 32 views
2

所以我使用amplifyjs包流星。MeteorJS和AmplifyJS反應

我對流星還是比較陌生,並且很難將它作爲一個被動的環境。

我現在用的是

amplify.store(string key) 

所以,當我修改本或添加值,我想有反映的視圖更新。

我想我將不得不使用Meteor.deps或autosubscribe,但不知道從哪裏開始。任何幫助都會很棒。

回答

1

實際上,你可以做的是創建一個Session的「子類」,它在調用set()時將值存儲在Amplify的存儲中。您將自動繼承Session的所有反應性屬性。這裏是代碼,它爲我工作:

SessionAmplify = _.extend({}, Session, { 
    keys: _.object(_.map(amplify.store(), function(value, key) { 
    return [key, JSON.stringify(value)] 
    })), 
    set: function (key, value) { 
    Session.set.apply(this, arguments); 
    amplify.store(key, value); 
    }, 
}); 

只需用SessionAmplify.set/get調用替換所有Session.set/get調用。當調用set()時,調用父級會話方法以及amplify.store()。當第一次創建「子類」時,它會加載放大器存儲在其密鑰中的所有內容。

您可以在此處測試排行榜示例的工作變體:https://github.com/sebastienbarre/meteor-leaderboard