我正在研究一个带有引导选项卡的简单示例,其中第一个选项卡将包含所有站的摘要,单击站将打开一个新选项卡并显示淘汰赛组件。当我使用静态选项卡而不是动态选项卡时,它可以很好地呈现模板。
它可以很好地生成选项卡,但由于某种原因,Knockout 什么也没做,除了将组件注入 DOM 之外,我是否必须做一些事情来触发淘汰?
function addNewTab(p) {
var ary = p.split(',');
var id = ary[0];
var name = ary[1];
//LoadDetails(id);
var nextTab = $('#tabs li').size() + 1;
$('<li><a href="#tab' + nextTab + '" data-toggle="tab">' + name + '</a><span class="glyphicon glyphicon-remove"></span></li>').appendTo('#tabs');
$('<div class="tab-pane" id="tab' + nextTab + '"><tab-details params = "id: '+id+'"></tab-details></div>').appendTo('.tab-content');
$('#tabs a:last').tab('show');
}
ko.components.register('tab-details', {
template: '<div data-bind="html: brief"></div>',
viewModel: function (params) {
var self = this;
self.brief = ko.observable('Hello World');
var url = "http://localhost:3000/stationapi?id=" + params.id;
$.getJSON(url, function (data) {
self.brief(data.stations.content.brief);
});
}
});
ko.applyBindings();