Knockout.js KO.js如何在使用视图构造函数时设置默认视图

Knockout.js KO.js如何在使用视图构造函数时设置默认视图,knockout.js,Knockout.js,我(对KO来说是新手!)在这里使用Ryan Niemayer提供的视图构造函数:,我正在尝试设置一个默认视图以在加载时显示 例如,在#3中,可以使用一个构造函数,如 下面是我尝试设置默认值的fork: // (templates are defined in the fiddle) var View = function(title, templateName, data) { this.title = title; this.templateName = templateName;

我(对KO来说是新手!)在这里使用Ryan Niemayer提供的视图构造函数:,我正在尝试设置一个默认视图以在加载时显示

例如,在#3中,可以使用一个构造函数,如

下面是我尝试设置默认值的fork:

// (templates are defined in the fiddle)
var View = function(title, templateName, data) {
   this.title = title;
   this.templateName = templateName;
   this.data = data; 
};

var definedViews = ko.observableArray([
    new View("one", "oneTmpl", new SubModelA()),
    new View("two", "twoTmpl", new SubModelB())
]);

var viewModel = {
    views: definedViews,
    defaultView: 0,
    selectedView: ko.observable( definedViews[0] )
};

ko.applyBindings(viewModel);
index.html:

    <!-- ko with: selectedView -->
    <div data-bind="template: { name: templateName, data: data }"></div>
    <!-- /ko -->

加载时,
selectedView
未定义,但当我单击选择时,它包含预期的对象

我还尝试将viewModel重构为一个函数,尝试将参数提供给html声明,以及一系列不连贯的随机猜测,无法在这里进行总结


有什么建议吗?蒂亚

实际上您缺少
()

这里是工作小提琴:

var viewModel = {
    views: definedViews,
    defaultView: 0,
    selectedView: ko.observable( definedViews()[0] )
};