我(对KO来说是新手)与Ryan Niemayer提供的视图构造函数一起玩How to properly structure a KnockoutJS application,我试图设置一个默认视图来加载显示...
例如在#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 -->
http://jsfiddle.net/memeLab/WVVyM/2/
加载时,selectedView
未定义,但是当我点击选择时,它会按预期包含一个对象...
我还尝试将viewModel重构为一个函数,尝试将参数提供给html声明,以及一堆随机猜测不够连贯到这里总结...
有什么建议吗? TIA!
答案 0 :(得分:2)
实际上你错过了()
var viewModel = {
views: definedViews,
defaultView: 0,
selectedView: ko.observable( definedViews()[0] )
};
这里是工作小提琴:http://jsfiddle.net/ZAHC9/