horizon.ioコレクションの値を増やす基本的なタスクを実行する方法を理解しようとしています。例えば、私は<h1>
タグをupvotesボタンを表すことができますし、upvotesカウントを永続化したいと思います。 Vueのインスタンスで次にHorizonコレクションの値を増やす
<h1 @click="inc">{{foo}}</h1> <!-- foo is local variable -->
<ul>
<li v-for="message in me">
{{message.value}} <!-- message.value is upvote value from collection -->
</li>
</ul>
:
created() {
me.store({
datetime: new Date(),
value: this.foo // local data variable set to 0 initially.
}).subscribe(
result => console.log(result),
error => console.log(error)
)
var self = this
me.watch().subscribe(function(data){
data.map(function(data){
self.foo = data.value
})
})
},
は、その後、私は値に<h1>
タグをクリックするたびに更新しようとしています:
inc(){
me.update({
id: 1,
value: this.foo++
})
}
どのように私は値を更新しますコレクション内の値にアクセスするには、テンプレート内のコレクションをレンダリングする必要がありますか?
クリックハンドラをコレクションから取得した値にアタッチすると、異常な動作が発生します。インクリメントは機能しますが、更新された値は保持されません。 1つのブラウザでその値をクリックすると値が増えますが、別のブラウザでその値を開くと値は戻ってきますが、必ずしも0に戻る必要はありません。実際、値は予測できない方法でバウンスします。ここで何が起こっているのか分かりません。 –
私は奇妙な増分問題を解決しましたが、値は維持されません。ブラウザをリフレッシュすると、値はゼロに戻ります。 –
ちょっと@MahmudAdam私は '.store'を一度だけ実行すると仮定してばかげた間違いを犯しましたが、上記の私の更新を見れば、' .insert'を使用して、継続して実行してください。基本的には、ページを読み込むたびに、すでに存在するドキュメントを上書きしています。そのため、値は常にゼロに戻ります。 – dalanmiller