所以我有一個非常奇怪的問題,因爲knockoutjs點擊綁定沒有附加到錨點標籤。其他數據綁定=「」的作品,但不是點擊綁定。knockoutjs點擊綁定不能在嵌套的foreach工作
下面你可以看到視圖模型JS的HTML和零件文件
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>
它基本上是一個模式彈出及其加載時用戶點擊頁面上的鏈接。 我向服務器發送一個請求,並返回我標籤容器的列表中的每個都起始號和標籤列表信下方呈現: 一個 一個字1 一個字2 乙 乙字1 乙字2 ç ç字1 ç字2
等等...
的字母正確呈現A,b,C各得到呈現在它們下面用正確的標籤列表文字:標題正確顯示。
除了addFilter();函數,我想綁定到標籤列表中的每個鏈接。瀏覽器只是跳轉,並添加一個哈希字符的URL。 Firebug在綁定中也沒有顯示任何錯誤。
div容器有一個with:searchViewModel的原因是因爲整個頁面都有一個主視圖模型。但這並不重要,因爲它正在項目的每個其他頁面上工作。
我能想到的唯一的事情是,點擊綁定$ root.addFilter是錯誤的,但我試圖只是addFilter在哪裏螢火蟲給出的錯誤「addFilter沒有定義;」
而且我試了$ parent和$ root。
有沒有人有任何建議?
你會解釋你是如何解決它,我將非常感激。 –