在使用knockoutjs中难免遇上多个数据来源情况,如果用knockoutjs原有功能应该是这样:
var viewmodel={
model1:xxxx,
model2:xxxx
}
看着不太美观,当数据层级较深时也不好处理
git 已有人对此做了扩展
https://github.com/sergeyzwezdin/Knockout-MultiModels
具体方式:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <div data-model="model1" data-bind="foreach:names"> <div data-bind="text:$data.name"></div> </div> <div data-model="model2"> <div data-bind="text:name"></div> </div> </body> <script type="text/javascript" src="js/jquery-1.10.2.min.js" ></script> <script type="text/javascript" src="js/knockout-3.4.0.js" ></script> <script type="text/javascript" src="js/jquery.livequery.js" ></script> <script type="text/javascript" src="js/knockout.multimodels-0.1.min.js" ></script> <script> var viewModel1 ={names:[{name:'于佳俊'},{name:'xueci'}]}; var viewModel2={name:'siyu'}; ko.attach("model1",viewModel1); ko.attach("model2",viewModel2); </script> </html>