2016-04-19 2 views
0

流星の新機能です。私は、イベントヘルパーからMeteor.method( 'addTask')を呼び出そうとしています。エラーを取得し続ける:「メソッド 'addTask'を呼び出すエラー:メソッド 'addTask'が見つかりません[404]」。私は以下のコードを入れます:流星法による誤差の計算

Template.add_task.events({ 
'submit .js-emoticon': function(event){ 
    event.preventDefault(); 
    // console.log('clicked'); 
    // var text = event.target.text.value; 
    // $('#text_display').html(text); 
    // $('#text_display').emoticonize(); 
    Meteor.call("addTask"); 
} 

});

そして、ここでMeteor.method:

Meteor.methods({ 
'addTask':function(){ 
    var task = event.target.text.value; 
    Items.insert({ 
    created:new Date().toLocaleDateString("en-US"), 
    task:task 
    }); 
    console.log(task); 
} 

});

両方とも、クライアントフォルダのmain.jsにあります。私はserver/main.jsにメソッドを配置しようとしましたが、エラーが発生します: "メソッド 'addTask'を呼び出す際のエラー:内部サーバーエラー[500]"。

クライアント上にある場合、#textの値はコンソールに記録されますが、サーバー上ではそれも実行されません。

私が言ったように、私は流星を学んでいて、これを行う方法としてこれを研究しました。私は明らかに何かが足りなくて、それを理解できません。どんな助けもありがとう。

答えて

2

サーバーコードからDOM要素を調べようとしています。クライアント上でその要素を取得し、それをメソッドに渡す必要があります。必要に応じて、/libフォルダーに入れて、遅延の補償を行うことができます。

クライアント:

Template.add_task.events({ 
    'submit .js-emoticon': function(event){ 
    event.preventDefault(); 
    var task = event.target.text.value; 
    Meteor.call("addTask",task); 
    } 
}); 

サーバー:

Meteor.methods({ 
    'addTask':function(task){ 
    check(task,String); 
    Items.insert({ created: new Date(), task: task }); 
    console.log(task); 
    } 
}); 

あなた決してあなたはモンゴでそれらを固執する場合、文字列にあなたの日付を変換したいです。そうすれば、日付の検索は不可能になります。

+2

@oscar現在のファイル構造と推奨事項については、[guide](http://guide.meteor.com/structure.html)を読むことをお勧めします。また、メソッドの引数を 'check 'するようにしてください。 :) –

+0

ありがとうございました。完璧に働いた。私はその問題が何かを見ます。 @DavidWeldonはこれに関するガイドをチェックします。ありがとう! –