2012-11-17 19 views
15

में विधि कक्षा में समारोह से वर्ग के सदस्य तक पहुँचने के लिए मैं इस टाइपप्रति कोड है:कैसे टाइपप्रति

module MyPage { 

    export class MyVm { 

     ToDo : string; 

     Load() { 
      //can access todo here by using this: 
      this.ToDo = "test"; 

      $.get("GetUrl", function (servertodos) { 
       //but how do I get to Todo here?? 
       this.ToDo(servertodos); //WRONG ToDo.. 
      }); 
     } 
    } 
} 

सवाल है, मैं कैसे कार्य करने की सदस्य क्षेत्र .Get $ कॉलबैक में उपयोग करते हैं है?

उत्तर

22

टाइपप्रति भी तीर समारोह है कि शाब्दिक scoping के संरक्षण का समर्थन करता है। तीर कार्यों जेकब के उदाहरण की तरह कोड में परिणाम लेकिन neater हैं आप अपने आप को चर बना सकते हैं और उपयोग को समायोजित करने की जरूरत नहीं है के रूप में:

यहाँ एक तीर समारोह का उपयोग कर उदाहरण है:

$.get("GetUrl", (todos) => { 
    this.ToDo(todos); 
}); 
+2

सहमत है, यह – Flores

+3

अच्छा है यह टाइपस्क्रिप्ट के बारे में मेरी पसंदीदा चीजों में से एक है। – Maverick

+0

यह स्पष्ट हो सकता है कि इस उदाहरण में 'डेटा' का उपयोग भी किया गया था, –

8

उसी तरह आप जावास्क्रिप्ट में कर

export class MyVm { 
    ToDo : string; 

    Load() { 
     //can access todo here by using this: 
     this.ToDo = "test"; 
     var me = this; 

     $.get("GetUrl", function (todos) { 
      //but how do I get to Todo here?? 
      me.ToDo(todos); //WRONG ToDo.. 
     }); 
    } 
} 
+1

अहा .. मेरी जावास्क्रिप्ट कौशल की कमी – Flores

+3

हालांकि यह तकनीकी रूप से सही है, तीर कार्यों का उपयोग करना यह करने का बेहतर तरीका है। –

+0

यह तकनीक अन्य समान परिदृश्यों के लिए काम करती है। मेरे लिए सही दिशा में एक सूचक था। – HockeyJ

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