在使用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>