2012-12-23 22 views
69

से व्यूमोडेल प्राप्त करें किसी दिए गए DOM तत्व से बाइंडेड व्यूमोडेल जावास्क्रिप्ट ऑब्जेक्ट प्राप्त करना संभव है?knockout.js - DOM तत्व

ko.applyBindings(gLoginViewModel, document.getElementById("login-form")); 
ko.applyBindings(gLoginViewModel, document.getElementById("register-form")); 

और कहीं और - बल्कि असंबंधित कोड में - कुछ इस तरह:

var viewModel = ko.getViewModel(formElement); 
viewModel.someObservable(someData); // observable available in all ViewModels 

इसे और भी बेहतर हो सकता है अगर मैं कुछ ऐसा कर सकता है: पहले से

var viewModel = ko.getViewModel(someChildElement); 

धन्यवाद!

उत्तर

118

नॉकआउट में दो utility methods हैं जो यहां सहायता कर सकते हैं।

  • ko.dataFor व्यूमोडेल वापस कर देगा कि तत्व बाध्य है।
  • ko.contextFor वर्तमान तत्व का "बाध्यकारी संदर्भ" देता है। तो अगर मैं अपने प्रश्न को समझते हैं, तो आप शायद ko.dataFor यहाँ का उपयोग कर सकते

    { 
        $data: ..., 
        $parents, 
        $root 
    } 
    

: वस्तु आप इस विधि से वापस पाने की तरह कुछ वापस आ जाएगी। Here's a simple exampledataFor का उपयोग कर।

+9

वैसे वे यहां दस्तावेज हैं: http://knockoutjs.com/documentation/unobtrusive-event-handling.html :) –

+1

@RPNiemeyer: आह, ओह, लिंक के लिए धन्यवाद। –

+0

बिल्कुल सही! :) धन्यवाद –