一个简单的knockout.js 和easyui的绑定

Posted 星火卓越

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个简单的knockout.js 和easyui的绑定相关的知识,希望对你有一定的参考价值。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Basic DataGrid - jQuery EasyUI Demo</title>
<link rel="stylesheet" type="text/css" href="easyui.css">
<link rel="stylesheet" type="text/css" href="icon.css">
<link rel="stylesheet" type="text/css" href="demo.css">
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="jquery.easyui.min.js"></script>
<script type="text/javascript" src="knockout-2.2.1.js"></script>

<script type="text/javascript">
//预编译函数, 可以定义在另一个js文件中
(function(){
//自定义绑定
ko.bindingHandlers.mydatagrid={
update:function (element, viewModelAccessor, allBindings) {
//得到当前绑定的model
var viewModel = viewModelAccessor();
$(element).datagrid({
url:viewModel.url,
columns:viewmodel.columns
})
}
}

})();
</script>

</head>
<body>
<h2>Basic DataGrid</h2>
<p>The DataGrid is created from markup, no JavaScript code needed.</p>
<div style="margin:20px 0;"></div>

<table id="tt" title="Basic DataGrid" style="width:700px;height:250px" data-bind="mydatagrid:grid">
</table>

<script type="text/javascript">
var viewmodel = function() {
this.grid={
url:‘mydata.json‘, 
columns:[
{field:‘code‘,title:‘Code‘,width:100}, 
{field:‘name‘,title:‘Name‘,width:100}, 
{field:‘price‘,title:‘Price‘,width:100,align:‘right‘}

}
};
ko.applyBindings(new viewmodel());

<!--easyui的写法
$(‘#tt‘).datagrid({ 
url:‘mydata.json‘, <!--跨域请求 在chrome的快捷方式上添加 --allow-file-access-from-files --> 
columns:[[ 
{field:‘code‘,title:‘Code‘,width:100}, 
{field:‘name‘,title:‘Name‘,width:100}, 
{field:‘price‘,title:‘Price‘,width:100,align:‘right‘} 
]] 
}); 
-->

</script>
</body>
</html>

以上是关于一个简单的knockout.js 和easyui的绑定的主要内容,如果未能解决你的问题,请参考以下文章

Knockout JS中的多个依赖选择

Knockout.js简介

knockout.js中的队列计时器

Knockout.js 使每个嵌套对象都成为 Observable

JS组件系列——KnockoutJS用法

从 .ajax() 调用加载一个 knockout.js observableArray()