2012-10-02 19 views
9

Nesneye bazı HTML'leri bağlama ihtiyacım var, ancak benim sorun şu ki geliştirme zamanında nesnenin özelliklerini bilmiyorum.knockout JS nesnesinin özelliklerine bağlama

<div data-bind="with: selectedItem"> 

</div> 

Şimdi özellik adı ve özellik değerlerine dayalı bir tablo oluşturmak istiyorum::

benim HTML bir bölümüne bağlı olan benim ana görünümü modelinde bir selectedItem özelliği vardır

<div data-bind="foreach: [WHAT DO I PUT HERE?]"> 
    <label class="control-label"><span data-bind="text: [OR HERE?]" /></label> 
</div> 

Bunun nasıl yapılacağını bilmiyorum. Herhangi bir yardım büyük beğeni topluyor.

Ayrıca, bunu yalnızca biraz genişleterek, bağlı nesnesinin özelliklerini, örneğin, yalnızca ilkel bir türse, yalnızca çıktı olarak, ancak başka bir nesne/dizi ise, işlemek istiyorum. özel olarak.

Bu yapılabilir mi?

cevap

4

Here, gösterilecek verileri çalışma zamanında seçmek için hesaplanmış gözlenebilir kullanan bir çalışma örneğidir. Dinamik olarak seçilmiş templates da verileri, oluşturulacak veri türüne (dizi veya skaler) göre render etmek için kullanılır.

+0

Bu iyi bir başlangıç ​​eklemek için kullanabilir, ama ben başarısız: Sen

<table> <tbody data-bind="foreach: arrayOfObjects"> <tr data-bind="foreach: Object.keys($data)"> <td data-bind="text: $parent[$data]"></td> </tr> </tbody> </table> 

not ... böyle yapabilir bunun tasarım zamanında bilmediğim viewmodel'in özelliklerine nasıl erişeceğimi tam olarak görmek için. Lütfen detaylandırır mısın? – Mark

+1

Elbette. "Selected" özelliği, viewmodel'de seçilecek özelliklerin ismini içerir (çalışma zamanında değiştirilebilir). Bu değerin değiştirilmesi (gözlemlenebilir), özellik "veri" güncellemesini tetikleyecektir (hesaplanabilir gözlemlenebilir). Bu son özellik, ilgili şablonu kullanarak oluşturmak için dinamik olarak (bakınız _self [seçim] _) verileri (liste1 veya öğe1) seçer. Umarım bu örneği açıklar. – gbs

+0

Ah, neler yaptığınızı görüyorum, teşekkürler. Ama belki de düşüncelerinizi özlüyorum, ya da belki de meseleyi yeterince açıklamamıştım. Model sınıfının X özellikleri var (sizin durumunuzda 2 ancak benimki 20 civarında), tüm özellikleri listelemek ve bu özelliğin türüne göre bir şablon seçmek istiyorum. Örneğinizde, seçim listesindeki özellikleri kodladığınızda, onları bilmediğim gibi ... bu mantıklı mı? – Mark