knockout.js - KO.js howto set default view when using view constructor -
i'm (new ko!) playing view constructor offered ryan niemayer here: how structure knockoutjs application, , i'm trying set default view show on load…
for example in #3, can use constructor function like…
and here fork attempting set default:
// (templates defined in 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/
on load, selectedview
undefined, when i've clicked select, contains object expected…
i've tried refactoring viewmodel function, trying feed parameters html declaration, , bunch of random guesswork not coherent enough summarise here…
any suggestions? tia!
actually you're missing ()
var viewmodel = { views: definedviews, defaultview: 0, selectedview: ko.observable( definedviews()[0] ) };
here working fiddle: http://jsfiddle.net/zahc9/
Comments
Post a Comment