1

最初のタブがすべてのステーションの概要を保持し、ステーションをクリックすると新しいタブが開き、ノックアウトコンポーネントが表示されるブートストラップタブを使用した簡単な例に取り組んでいます。動的タブではなく静的タブを使用すると、テンプレートが正常にレンダリングされます。

タブは正常に生成されますが、何らかの理由でノックアウトは何もしていません。コンポーネントを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();
4

1 に答える 1