8

私はtemplate.find自分の生活を楽にするために使用しようとしています。

しかし、javascriptコンソールでは次のようになります。undefined is not a function

これが私が持っているものです。つまずきますtemplate.find(...)

  Template.superuserHUD.events = 
  {
    'click input.new_device': function (template) {
      var id = template.find(".new_device_id").value;
      Device_IPs.insert({ID: id, IP: "Not Connected"});
    }
  }

何か案は?

4

2 に答える 2

16

イベント ハンドラー関数は 2 つの引数を受け取ります。eventイベントに関する情報を持つオブジェクト とtemplate、ハンドラーが定義されているテンプレートのテンプレート インスタンスです。

find()2 番目のパラメーターはオプションですが、 、findAll()、などのテンプレート インスタンス関数を使用する場合は、ハンドラーで受け取る必要がありfirstNode()ますlastNode()

したがって、template.find()イベント ハンドラーで を使用するには、両方の引数を次のように渡す必要があります。

'click input.new_device': function (event, template) {
     // your event handling code
  }
于 2012-12-19T05:11:19.633 に答える
5

2番目の引数を使用してください

Template.superuserHUD.events
    'click input.new_device': (event, template) ->
        options =
              id: template.find('.new_device_id').value
              IP: 'Not Connected'
        Device_IPs.insert options

のようにテンプレート自体を使用することもあります

Template.superuserHUD.events
    event: (event, template) ->
        @find('.new_device_id').value

これは、コーヒーの読み書きができないためのjavascriptの同じです...

Template.superuserHUD.events({
  'click input.new_device': function(event, template) {
    var options;
    options = {
      id: template.find('.new_device_id').value,
      IP: 'Not Connected'
    };
    return Device_IPs.insert(options);
  }
});

Template.superuserHUD.events({
  event: function(event, template) {
    return this.find('.new_device_id').value;
  }
});
于 2012-12-18T11:56:17.897 に答える