2013-08-12 6 views
5

मिलता है मुझे knockout.js का उपयोग करके मूल ऑब्जेक्ट के बच्चे ऑब्जेक्ट से कुछ फ़ील्ड प्राप्त करने में कठिनाई हो रही है।
नॉकआउटज को मूल ऑब्जेक्ट

function Child(info){ 
    var self = this; 
    self.x = info.x; 
    self.y = info.y; 
    self.parentThing = parent.fieldToGet(); // This is when I had problem 
} 

function Main() { 
    var self = this; 
    self.fieldToGet = ko.observable(); 
      self.things = ko.observableArray(); 
    self.postFunction = function(){ 
     $.post('XXX.php', $("form#filterForm").serialize(), function(data){ 
       var mappedThing = $.map(data.data, function(info){return new Child(info); }); 
       self.things(mappedThing); 
      } 
     }, 'json'); 
    }; 
} 
var main = new Main(); 
ko.applyBindings(main, $("div#main")[0]); 



पदानुक्रम मुख्य कई बच्चे है। बाल वस्तु में मैं अपने माता-पिता की विशेषता प्राप्त करना चाहता हूं: फ़ील्ड टोजेट।

+4

पास 'Main' एक पैरामीटर के रूप में बच्चे को कक्षा में पैरामीटर के रूप में पारित हो जाएगा' self' के रूप में) 'Child' –

+0

के निर्माता के लिए इस उदाहरण में समस्या क्या है? –

+0

@PWKad समस्या यह है कि मेरा उदाहरण वास्तव में काम नहीं करता है। – riceTale

उत्तर

4

मुझे लगता है कि पर एक अच्छा समाधान होगा माता-पिता को पैरामीटर के रूप में बच्चे को पास करें।

function Child(info, parent){ 
    var self = this; 
    self.parent = parent; 
    self.x = info.x; 
    self.y = info.y; 
    self.parentThing = parent.fieldToGet(); // This is when I had problem 
} 


function Main() { 
    var self = this; 
    self.fieldToGet = ko.observable(); 
    self.things = ko.observableArray(); 
    self.postFunction = function() 
    { 
     $.post('XXX.php', $("form#filterForm").serialize(), function(data) { 
       var mappedThing = $.map(data.data, function(info) { 
       return new Child(info, self);   
       }); 
       self.things(mappedThing); 
     }, 'json'); 
    }; 
} 
    var main = new Main(); 
    ko.applyBindings(main, $("div#main")[0]); 

तुम मेरे उदाहरण में देख सकते हैं माता पिता उदाहरण (self) (निर्माता (function Child(info, parent))

+0

सबसे पहले मेरे प्रश्न का उत्तर देने के लिए धन्यवाद। जैसा कि मैंने बताया है कि मैंने पहले इस समस्या से मुलाकात की और मैंने समस्या को हल किया जैसे आपने यहां किया था। तो क्या इसका मतलब है कि मैं डेटा-बाइंड में संरचना में पैरेंट का क्षेत्र नहीं प्राप्त कर सकता हूं? जैसे $ Parent.parentThing() – riceTale

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