所以我使用amplifyjs包流星。MeteorJS和AmplifyJS反應
我對流星還是比較陌生,並且很難將它作爲一個被動的環境。
我現在用的是
amplify.store(string key)
所以,當我修改本或添加值,我想有反映的視圖更新。
我想我將不得不使用Meteor.deps或autosubscribe,但不知道從哪裏開始。任何幫助都會很棒。
所以我使用amplifyjs包流星。MeteorJS和AmplifyJS反應
我對流星還是比較陌生,並且很難將它作爲一個被動的環境。
我現在用的是
amplify.store(string key)
所以,當我修改本或添加值,我想有反映的視圖更新。
我想我將不得不使用Meteor.deps或autosubscribe,但不知道從哪裏開始。任何幫助都會很棒。
由於amplify是第三方軟件包,它不使用Meteor上下文或內置反應性。但是,您可以非常輕鬆地構建自己的反應包裝。您可以檢查出DEPS文檔,看看如何使用Meteor.deps.Context和Meteor.deps._ContextSet做到這一點:
http://docs.meteor.com/#meteor_deps
我還發布了一段視頻教程在這裏:http://www.eventedmind.com/posts/reactivity-with-contexts
實際上,你可以做的是創建一個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