knockoutjs 使用多个ViewModel
作者:佚名 发表时间:2015-12-31 17:16:26

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