我正在尝试使用jQuery.UI选项卡创建包含动态选项卡的页面。 我在我看来有这个代码:
<div id="tabs" class="tabs">
<ul data-bind='foreach: sites'>
<li><a data-bind="attr: { href: site().tabIdLink}"><span data-bind="text: site().Name"></span></a></li>
</ul>
<!-- ko foreach: sites -->
<div data-bind="attr: { 'id': site().tabId }">
<h3 data-bind="text: site().Name"></h3>
</div>
<!-- /ko -->
和这个视图模型:
function ViewModel(api) {
var self = this;
self.sites = ko.observableArray([]);
self.addSite = function (data) {
self.sites.push(new Site(data));
};
$.getJSON(api + "allsites", "", function (allSites) {
var mappedData = $.map(allSites, function (item)
{
return new Site(item);
});
self.sites(mappedData);
$("#tabs").tabs();
});
}
function Site(data) {
var self = this;
self.id = data.Id;
self.tabId = "tab_" + data.Id;
self.tabIdLink = "#" + self.tabId;
self.site = ko.observable(data);
}
所有工作,除了我无法在div标签上设置id属性。 有什么建议吗?
答案 0 :(得分:2)
site().tabId
无法正常工作,因为site
是一个包含原始数据对象并且不具有tabId
属性的可观察对象,请考虑这样做$data.tabId
1}}或只是tabId
答案 1 :(得分:1)
这将有效:
<div data-bind="attr: { 'id': tabId }">