Bu yüzden, bağlantı etiketlerine bağlanmayan bir knockoutjs tıklama bağlaması ile gerçekten garip bir sorunum var. Diğer data-bind = "" ancak tıklama ciltleme değil. kullanıcı sayfasındaki bir bağlantıyı tıkladığında Aşağıdaknockoutjs tıklatma iç içe geçmiş foreach'da çalışmıyor bağla
Temel olarak kalıcı bir pop-up ve onun yüklü
var tag = function (data) {
this.count = data.Count;
this.id = data.Id;
this.title = data.Title;
this.tagGroup = data.TagGroup;
};
var tagContainer = function (data) {
this.tagList = $.map(data.Tags, function (item) { return new tag(item); });
this.letter = ko.observable(data.Letter);
};
var searchViewModel = function(){
var self = this;
self.tagContainerList = ko.observableArray([]);
self.addFilter = function (tag) {
//move tag to active filters and do some more cool stuff here
};
};
<div id="modal-all-tags" data-bind="with:searchViewModel">
<ul data-bind="foreach:tagContainerList">
<li>
<span data-bind="text:$data.letter()"></span>
<ul data-bind="foreach:tagList">
<li><a href="#" data-bind="click:$root.addFilter"><span data-bind="text:title"></span></a></li>
</ul>
</li>
</ul>
<a class="close-reveal-modal">×</a>
</div>
dosya ViewModel js HTML ve bir kısmını görebilirsiniz. Ben sunucuya bir istek gönderir ve bana her başlangıç Harf ve etiketlerin bir listesi bu gibi harf altında işlenecek olan Etiket Konteynerler bir listesini verir: bir bir kelime 1 bir kelime 2 B b sözcüğü 1 b kelimesi 2 C c kelimesi 1 c kelimesi 2
vb ...
harfler doğru işlenir A, B, C ve her biri altlarındaki render doğru etiket listesini alır metin: başlık doğru şekilde gösteriliyor.
Her şey addFilter() dışında çalışır; Etiket listesindeki her bağlantıya bağlamak istediğim işlev. Tarayıcı sadece yukarı atlar ve url'ye bir karma karakter ekler. Firebug, bağlamalarda da herhangi bir hata göstermiyor.
Div konteynerinin sahip olmasının nedeni: searchViewModel, tüm sayfa için bir ana görünüm modelinin bulunmasıdır. Ancak bu, projenin diğer her sayfasında çalıştığı için önemli olmamalı.
Düşünebildiğim tek şey, $ root.addFilter bağlantısının tıklanmasının yanlış olduğunu, ancak firebug'ın "addFilter tanımlı değil" hatasını verdiği addFilter'i denedim.
Hem de $ parent ve $ root denedim.
Herhangi bir öneriniz var mı?
gibi bir şeye benzedim. Bunu nasıl çözdüğünüzü açıklar mısınız? –