2016-10-27 6 views
0

このデータピッカーhttps://github.com/richsilv/Pikaday/を流星のアプリで使用します。js datapickerを流星火災で使用する方法

私の入力フィールドをクリックすると、このデータピッカーが表示されます。それは私がエラーを取得し、私は無限ループを信じて、その後、一度だけ動作します。

Uncaught RangeError: Maximum call stack size exceeded.

とはconsole.logメッセージのロットから:

console.log(this.getMoment().format('YYYY-MM-DD')); 

私は何を間違っているとどのようにしていますこのデータピッカーを正しく使用しますか?

HTML

{{#each showDates}} 
<li> 
    <input class="datapicker" type="text" value={{date}} id="data{{_id}}" /> 
</li> 
{{each}} 

JS

'click .datapicker': function(e) {   
    $(document).ready(function() { 
     var picker = new Pikaday({ 
      field: document.getElementById(e.target.id), 
      format: 'YYYY-MM-DD', 
      onSelect: function() { 
       console.log(this.getMoment().format('YYYY-MM-DD')); 
      } 
     }); 
    }); 
}, 

編集:たぶん重要な情報:私は、このデータピッカーを見るために、入力フィールドに2回クリックする必要があります。そして、私はこのエラー/無限ループのために私のブラウザプロセスを殺すか、流星を再起動しなければなりません。

field: document.getElementById(e.target.id), 

これをすること:これは

答えて

0

私は、あなたが正しいIDをターゲットにしていないべきではないと思いますか?私が得る `、のdocument.getElementById( 'データ$ {e.target.id}'):

field: document.getElementById(`data${e.target.id}`), 
+0

にピッカー(またはあなたが初期化する必要が他のもの)を開始します"ヌルのプロパティ 'nodeName'を読み取ることができません。 \t私は正しいIDをターゲットにしています。なぜなら 'console.log(" ID: "+ e.target.id);"ブラウザのコンソールに "ID:dataFL294nSfcJwqbf8fz"というメッセージが表示されるからです。 –

+0

あなたのjsをこれに変更しようとしてください: –

+0

$(document).ready(function(){ 「クリック.datapicker」:function(e){ var picker = new Pikaday({ field:document.getElementById target.id)、 形式: 'YYYY-MM-DD' にonSelect:関数(){。 はconsole.log(this.getMoment()フォーマット( 'YYYY-MM-DD'));} } ); }、 }); –

0

は`フィールドで

Template.templateName.onRendered(function{ 
    //fires when the template is rendered 
    //initialize whatever here. here is a pickadate example 

    $('.elementClass').pickadate({ 
     selectMonths: true, 
     selectYears: true, 
     min: new Date(), 
     closeOnSelect: true, 
     onSet: function(context) { 
      var selected = moment(context.select).format('YYYY-MM-DD')); 
      //do something with selected 
     }, 
     onClose: function() { 
      //BONUS: this will prevent a bug/issue 
      //when you go to another tab or page and come back 
      //it fires the pickadate that was closed again. 
      //this might be a bug in materializeCSS only 
      $(document.activeElement).blur(); 
     } 
    }); 
}); 
+0

こんにちは。私はこのエラーが発生しています:トラッカーafterFlush関数からの_Exception:TypeError:$(...)。pickadateはfunction_ではありません。私はあなたのコードを '$(document).ready(function()'でラップしようとしましたが、それは役に立ちません。 –

+0

@ProgrammingNoviceはまずあなたのonSet() – Luna

関連する問題