Knockout.js KO.js如何在使用视图构造函数时设置默认视图
我(对KO来说是新手!)在这里使用Ryan Niemayer提供的视图构造函数:,我正在尝试设置一个默认视图以在加载时显示 例如,在#3中,可以使用一个构造函数,如 下面是我尝试设置默认值的fork: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;
// (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] )
};