所以我正在使用magnify的magnifyjs软件包。
我仍然是流星的新手,我很难将其作为反应性环境。
我正在使用
amplify.store( string key )
因此,当我对此进行更改或添加值时,我希望视图更新能够反映出来。
我想我必须使用Meteor.deps或autosubscribe但不知道从哪里开始。任何帮助都会很棒。
答案 0 :(得分:4)
由于amplify是第三方软件包,因此它不使用Meteor上下文或内置了反应性。但您可以非常轻松地构建自己的反应式包装器。您可以查看deps文档以了解如何使用Meteor.deps.Context和Meteor.deps._ContextSet来执行此操作:
http://docs.meteor.com/#meteor_deps
我还在这里发布了一个视频教程:http://www.eventedmind.com/posts/reactivity-with-contexts
答案 1 :(得分: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()时,将调用父Session方法,以及amplify.store()。首次创建“子类”时,它会加载放在其键中的放大器中的所有内容。
您可以在此处测试排行榜示例的工作变体:https://github.com/sebastienbarre/meteor-leaderboard