2015-07-10 19 views
8

çocukların bileşenlere params geçme Bir şablon var Yani bunu yapmak zorunda değilim? gibiKnockout

<ul class="item-list" data-bind="foreach: items"> 
    <item params="title: title, 
       $element: $element, 
       $data: $data, 
       $parent: $parent"></item> 
</ul> 

Ama doğrusu şey:

<item params="$context"></item> 

Ben nakavt için yeni. Görünüm nesnesine bir nesneyi iletebileceğimin ve bu nesne üzerinde çalışabileceğimin farkındayım, yani this.title yerine this.object.title veya this.$data.title yapmak zorunda kalırdım ve yine de $element ve $parent'u el ile geçmek zorunda kalırdım.

Bunu özlediğim başka bir yol var mı?

<item params="{ context: $context }"></item> 

Sonra bileşen kodunda:

+0

görüyor musunuz? – connexo

+0

Sadece Knockout'la oynuyorum, bu karşılaştığım bir problem, bu gerçek dünya değil. – falafel99

cevap

6

Sen şöyle $context geçebilir size hiç bağlamda yararlanarak olmak görünmüyor,

viewModel: function(params) { 
    var ctx = params.context; 
    var itemData = ctx.$data; 
    $.extend(this, itemData) 
}, 

Ama,' this ürününü yalnızca item geçirilen verilerle genişletme. Yani, şu yanı yapacağız:

<item params="{ item: $data }"></item> 

viewModel: function(params) { 
    $.extend(this, params.item) 
}, 

neden bileşenleri hiç ayırmak istiyorum, bu basit durumda Fiddle

İlgili konular