2016-07-12 7 views
0

現在、ユーザーが検索入力を入力したときにテーブルを「更新」する方法にはいくつか問題があります。既存のテーブルに検索関連エントリを入力するにはどうすればいいですか

今、私のページは私のMongoDBからコレクションをプルしてから、オブジェクトの配列を反復処理します。この時点ですべて正常に動作します。

// Pulls Data from DB 
imports: function() { 
var importReturn = imports.find({}).fetch(); 
return importReturn; 
} 

//Then Iterates over return value and creates an table row for each entry. 
//This #each block is also nested in another template. 
{{#each imports}} 
    {{> tableRowAdmin}} 
{{/each}} 

今まで、検索エントリに一致するオブジェクトを配信するまでの検索バーを追加しました。

//Initializing ReactiveVar in global context 
var reactiveQuery = new ReactiveVar({}); 


//Helper Function: 
imports: function() { 
var importReturn = imports.find(reactiveQuery.curValue).fetch(); 
return importReturn; 
} 

//Event: 
'input .searchInput': function(e){ 
    var val = event.target.value; 
    console.log(val); 
    reactiveQuery.set(
     {$or:[ 
    {title: {'$regex': val, $options: 'i' }}, 
    {"supplier.name": {'$regex': val, $options: 'i'}}, 
    {"supplier.id": {'$regex': val, $options: 'i'}}, 
]} 
     ) 
    console.log(reactiveQuery); 

} 

答えて

0

通常の実装では、反応性を利用するようにされています。しかし、私は本当に..私のテンプレートを再レンダリングする方法について

//The search bar is within a separated template from the table row template 
Template.overviewAdmin.events({ 
'input .searchInput': function(e){ 
    var val = event.target.value; 
    var object = imports.find(
     {$or:[ 
    {title: {'$regex': val, $options: 'i' }}, 
    {"supplier.name": {'$regex': val, $options: 'i'}}, 
    {"supplier.id": {'$regex': val, $options: 'i'}} 
]} 
     ).fetch(); 
    console.log(object); 
} 
}) 

// CHANGESを立ち往生しています。

あなたのコードの最初の部分はヘルパーですか?その場合はimports.find(){}の代わりにReactiveVarを使用するだけです。もちろん、反応変数を空のオブジェクトで初期化することもできます。

あなたのクエリ文字列で反応性の高い変数を更新するだけで、反応性が残りの部分を処理します。

言われているように、各ユーザーの入力で更新するために反応性が非常に頻繁に発生することに注意してください。


編集質問REV 2の後:

reactiveQuery.curValueは正確に何を与えるのでしょうか?

なぜ使用しないのですかreactiveQuery.get()

私は反応が標準get()set()の方法を使用する場合のみ動作すると考えています。

+0

空のオブジェクトで動作していますが、ユーザーが検索クエリを入力しても更新されません。 – Pascal

+0

申し訳ありませんあなたのコードで行ったことの詳細を提供していない場合は、私はあなたを助けることができません。更新されたコードで質問を編集/追加できますか? – ghybs

+0

変更を追加しました。 – Pascal

関連する問題