7
メテオが新しくなりました。私は簡単なテストを構築し、非常に簡単な部分に立ち往生した。私のWebページのコンテンツはdbが変更されたときにのみ更新されますが、結果を返す関数が変更されたときにどのように更新する必要がありますか?ここに私のアプリケーションのコードの一部です:メテオテンプレート更新
client.js:
Meteor.subscribe("tasks");
var search_query = "";
Template.page.tasks = function() {
return Tasks.find({title: {$regex: search_query}});
};
Template.task.events({
'click .checkmark': function() {
Tasks.update({_id: this._id}, {$set: {done: !this.done}});
}
});
Template.page.events({
'keyup .search': function() {
search_query = $(".search").val();
}
});
がtodo.htmlという:
<head>
<title>Todo list</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
{{> page}}
</body>
<template name="page">
<div class="tasks">
<h1>Collections TODOs</h1>
<input type="text" class="search" placeholder="Search...">
{{#each tasks}}
{{> task}}
{{/each}}
</div>
</template>
<template name="task">
<div class="task well well-small">
<button type="button" class="close cancel">×</button>
<h3>
{{#if done}}
<button type="button" class="checkmark done">✓</button>
{{else}}
<button type="button" class="checkmark muted">✓</button>
{{/if}}
{{title}}
</h3>
<div class="creator muted">{{creator}}</div>
<p>{{description}}</p>
</div>
だから今、私が入力中いつでもユーザーが何かを期待します.searchボックス変数が変更され、Template.page.tasks
が異なる結果を返します。しかし、何も実際に更新されません。アプリを見ることができますhttp://slava.meteor.com
おかげで、この
そして、あなたのイベントのよう
Session
変数を作成します。しかし、今、私の検索フィールドからテンプレートの更新テキストが消えるたびに。ページがリフレッシュされるように見えます。ヒントを教えてください。どうすればUIを改善できますか? – imslavko私は明らかに ''を設定し、手動でフォーカスを置くことができますが、それでもちょっと奇妙です – imslavko
ページが更新されたときにユーザーの入力を保持する方法については、[preseve-input](http://docs.meteor.com/#template_preserve)を参照してください。 –