2012-12-18 24 views
7

मैं अपने जीवन को आसान बनाने के लिए 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"}); 
    } 
    } 

कोई भी विचार पर फिसल गया हो रही है?

+0

बजाय तत्व यह है कि चयनकर्ता से मेल खाता पाने की, आप सीधे तत्व का मान-पाठ को पुनः प्राप्त करेगा '.getElementById()' विधि –

+0

हाय उपयोगकर्ता 11 9 1551 का उपयोग करके, आपने 5 प्रश्न पूछे हैं लेकिन उन्हें कोई जवाब स्वीकार नहीं किया है। इसे उपयोगी उत्तर देने वाले उत्तरों को स्वीकार करने के लिए यहां सामान्य सौजन्य माना जाता है। यह आपके भविष्य के सवालों के जवाबों की गुणवत्ता में भी सुधार करेगा। धन्यवाद! – Rahul

+0

धन्यवाद राहुल। ऐसा प्रतीत होता है कि मेरे पास 2 अलग-अलग खाते हैं क्योंकि मैंने निश्चित रूप से उत्तर दिया है और इस खाते के शो से अधिक जवाब स्वीकार किए हैं ... – Chet

उत्तर

5

एक दूसरे arugment का इस्तेमाल करें जैसे

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 

ही उपयोग करें ...

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; 
    } 
}); 
+0

क्षमा करें, लेकिन मैं पूरी तरह से इस वाक्यविन्यास को समझ नहीं पा रहा हूं। क्या यह जावास्क्रिप्ट है? मैंने कभी नहीं देखा है "->" – Chet

+0

यह कॉफ़ीस्क्रिप्ट है, आप http://js2coffee.org/ – crapthings

15

इवेंट हैंडलर फ़ंक्शन दो तर्क प्राप्त करता है: event, घटना के बारे में जानकारी वाला एक ऑब्जेक्ट, और template, टेम्पलेट के लिए टेम्पलेट उदाहरण जहां हैंडलर परिभाषित किया गया है।

दूसरा पैरामीटर वैकल्पिक है, लेकिन जब आप find(), findAll(), firstNode() और lastNode() तरह टेम्पलेट उदाहरण कार्यों का उपयोग करना चाहते हैंडलर में प्राप्त करने की आवश्यकता है।

तो, अपने ईवेंट हैंडलर में template.find() उपयोग करने के लिए, आप के रूप में पारित करने के लिए दोनों बहस की जरूरत है:

'click input.new_device': function (event, template) { 
    // your event handling code 
    } 
+0

हम्म का अनुवाद करने के लिए इसका उपयोग कर सकते हैं। मैंने यह कोशिश की: 'input.new_device' पर क्लिक करें: फ़ंक्शन (ईवेंट, टेम्पलेट) { var id = this.find ("new_device_id")। मान; console.log (id) } लेकिन यह अभी भी काम नहीं करता है। अभी भी अपरिभाषित ... और यह एचटीएमएल है: आईडी: <इनपुट प्रकार = "टेक्स्ट" वर्ग = "new_device_id"> \t <इनपुट प्रकार = "बटन" वर्ग = "new_device" मूल्य = "जोड़ें" /> – Chet

+3

आप अभी भी गलत कर रहे हैं, '' input.new_device 'पर क्लिक करें' यह 'वर्तमान' विंडो 'ऑब्जेक्ट को संदर्भित करेगा, * नहीं *' टेम्पलेट 'जिसे आप काम करने का प्रयास कर रहे हैं। तो, जाहिर है 'यह। ढूँढें() 'वापस' अपरिभाषित 'होगा। तो, आपको * '.find()' के बजाय * 'template.find()' लिखना होगा। –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^