2012-09-14 21 views
6

KO framework'ü seviyorum, ancak hata ayıklama bazen benim için bir kâbus. Düzenli javascript kodu olması durumunda, bir kesme noktası koyabilir ve çalışma zamanında oraya gidebilir ve neyin yanlış olduğunu görebilirim, ancak nakavt ifadeleri nasıl hata ayıklanır? Çoğu durumda, bağlama hataları bazı sembollerin veya yanlış sözdiziminin eksik olmasının bir sonucudur ve bazen devre dışı bırakılması, söz konusu sorunla ilgili net hataları gösterir, ancak bazen görünmez, sayfada beklenen veriler ya da 'ciltleme ifadesi yanlış' gibi hata iletileridir. , hatta 'fonksiyon abc bulunamamış' gibi mesajlar, modelimin KO seviyesinin hangi seviyeden geçtiğini bilmediğim için derhal neyin yanlış olduğunu anlamama izin vermiyor. İdeal olarak, herhangi bir KO ifadesinde kesme noktaları veya bir şey koymak ve çalışma zamanında çalıştığı bağlamı görmek bir tarayıcı eklentisi olmalıdır. Bunun gibi bir şey pazarda mı yoksa beklenen bir şey mi? Hata ayıklama sürecini iyileştirme ile ilgili herhangi bir fikir var mı?knockout.js ciltleme ifadelerinizde nasıl hata ayıklıyorsunuz?

+4

Birkaç öneri: Mevcut içeriğinizi görmenin bir yolu için buraya bakın: http://stackoverflow.com/questions/9261296/any-good-techniques-to-debug-template-binding-faults-for- nakavt-js. Ayrıca, gerçekten bağlayıcı ifadelerinizi işaretlemeden çıkarmak istiyorsanız, bu projeye göz atın: https://github.com/rniemeyer/knockout-classBindingProvider –

+0

Teşekkürler. Aynı soru – YMC

+0

tarafından yanıtlandı. Küçük bir hata ayıklama bağlantısı kullanıyorumHandler: http://stackoverflow.com/a/16242988/647845 –

cevap

10

Geliştirme sırasında, hata ayıklama sürümlerini kullanıyorum ve createBindingsStringEvaluator() (v2.1.0 satır 1858) işlevinde bir kesme noktası belirledim. Bu yüzden, bağlamaların "ayrıştırılmasından" önce, değerlendirilecek ifadeyi analiz edebilir, hangi bağların başarısız olduğunu, bağlamlarını bulabilir ve bağlanma sürecine girebilir, böylece başarısız oluncaya kadar yürüyebilirsiniz.

Çok karmaşık bağlamaları, özellikle de yinelenmesi gerekiyorsa sorunları en aza indirgemek için, aynı anda bir dizi bağlama uygulayabilen bazı özel bağlama işleyicileri oluşturmayı düşünürüm.

+0

Tüm bağlayıcılarınız başarısız olduğunda ve komut dosyası hataları olmadığında ne yaparsınız? – Nikos

+2

Ne tür bir "arızanın" olduğuna bağlı. Birden çok bağlanmada olursa, sorunların birer birer ele alınması. Her şeyin beklediğiniz şey olduğundan emin olarak neden başarısız olduğunu anlayın. –

+0

güzel teşekkürler !!!! – Nikos

0

Geçerli sürümde (v 3.4.1), işlev parseBindingsString olarak adlandırılır. Orada bir debugger veya bir console.log ayarlayarak, size bazı bilgiler alacaksınız.

İlgili konular