jquery - Knockout - one view model for ajax.load page -


i have 1 viewmodel in page has 2 tabs, when page loads viewmodel gets binded, when click on second tab load content using ajax.load in page want use viewmodel defined in page has tabs, possible?

to short - 'yes possible!'. implementation example:

var yourfirsttabviewmodel = {     name: ko.observable("john") }  var yoursecondtabviewmodel = {     somecounter:ko.observable(100) }   var mainviewmodel = {      changetab : function(tabindex) {          if (tabindex == 0) {              $("#tabscontentcontainer").load("youpagetabtemplate", function() {                  ko.applybindingstodescendants(yourfirsttabviewmodel, $("#tabscontentcontainer")[0]);              });          } else {              $("#tabscontentcontainer").load("youpagetabtemplate2", function () {                  ko.applybindingstodescendants(yoursecondtabviewmodel, $("#tabscontentcontainer")[0]);              });          }      } }  ko.applybindings(mainviewmodel, $("#tabscontainer")[0]) 

and markup:

<div id="tabscontainer">   <button data-bind="click:changetab.bind($data, 0)">first tab</button>   <button data-bind="click:changetab.bind($data, 1)">second tab</button>   <div id="tabscontentcontainer"></div> </div> 

this work, it's not knockout way! should consider using template knockout binding instead of ajax.load(). can find information template binding on knockout website: http://knockoutjs.com/documentation/template-binding.html

also can @ knockout-amd-helpers, loads templates/viewmodels when need using require.js. here website: https://github.com/rniemeyer/knockout-amd-helpers


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -

How to provide Authorization & Authentication using Asp.net, C#? -