2014-08-29 20 views
5

जब 'create' विकल्प नॉकआउट मैपिंग में उपयोग किया जाता है तो हम सरणी को एक अवलोकन सरणी बना देंगे। लेकिन हम प्रत्येक ऑब्जेक्ट के गुणों को अवलोकन योग्य सरणी में कैसे देख सकते हैं?एक नॉकआउट अवलोकन योग्य सरणी में ऑब्जेक्ट गुण कैसे बनाएं?

इस उदाहरण में नॉकआउट दस्तावेज़ीकरण से, बच्चों के सरणी को एक अवलोकन सरणी बना दिया गया है, लेकिन मैं आईडी जैसे सभी तत्वों को बनाना चाहता हूं, प्रत्येक ऑब्जेक्ट के भीतर नाम, अक्षरों को भी देखने योग्य होना चाहिए। हम इसे कैसे प्राप्त करते हैं। बस ब्लॉक में प्रत्येक नई ऑब्जेक्ट पर ko.observable डालें?

var data = { 
    name: 'Graham', 
    children: [ 
     { id : 1, name : 'Lisa' } 
    ] 
}; 

// Your custom data model 
var myChildModel = function (data) { 
    this.id = data.id; 
    this.name = data.name; 
}; 

var mapping = { 
    'children': { 
     create: function(options) { 
      return new myChildModel(options.data); 
     } 
    } 
}; 

var viewModel = ko.mapping.fromJS(data, mapping); 

उत्तर

1
प्रति documentation

:

  • एक वस्तु के सभी गुण एक नमूदार में बदला जाता है।
अनुकूलित वस्तु, यह कहा गया

बेशक

"बनाने के" अंदर कॉलबैक बनाने आप ko.mapping.fromJS यदि करने के लिए एक और कॉल कर सकते हैं का उपयोग कर निर्माण के बारे में

इस प्रकार, अनुभाग में नीचे तुम चाहो।

var myChildModel = function(data) { 
    ko.mapping.fromJS(data, {}, this); 

    this.nameLength = ko.computed(function() { 
    return this.name().length; 
    }, this); 
} 

जाहिर है, इस सभी गुण बदल जाएगा:

प्रदान की उदाहरण इस प्रकार है। कस्टम आवश्यकताओं को संभालने के लिए विशेष रूप से उस मैपिंग कॉल पर अधिक विस्तृत कॉन्फ़िगरेशन लागू किया जा सकता है।

1

त्वरित जवाब ऑब्जेक्ट के गुणों को नमूदार

var myChildModel = function (data) { 
    this.id = ko.observable(data.id); 
    this.name = ko.observable(data.name); 
; 

करना है यह भी शायद सबसे आसान तरीका है, हालांकि वहाँ दूसरों

0

हैं, बस:

var viewModel = ko.mapping.fromJS(data); 

यह सब कुछ करता है, संपत्तियों और सरणी दोनों को देखने योग्य बनाओ। इस विधि का दूसरा पैरामीटर केवल अनुकूलन के उद्देश्य के लिए है। यदि आपको आवश्यकता नहीं है तो आपको इसका उपयोग करने की ज़रूरत नहीं है!

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