kero
Version:
132 lines (113 loc) • 3.31 kB
Markdown
# 基本示例
本例展示数据绑定。
##数据绑定
本例实现如下效果:
* 默认数据绑定:`#demo_input`输入框绑定`'hello world'`
* 双向绑定: `#demo_div`获取`#demo_input`默认的值、及`#demo_input`修改失去焦点后的值
<div class="example-content"><!--
HTML
u-meta:框架特有标记,框架通过识别此标记创建对应UI组件,以及进行数据绑定
id,type.data,field为必选项
id:创建组件唯一标识
type:创建组件对应的类型
data:指定数据模型中的数据集
field:绑定数据集中对应的字段
-->
<input id="demo_input" u-meta='{"id":"t1","type":"string","data":"dt1","field":"f1"}' />
<div id="demo_div"></div></div>
<div class="example-content ex-hide"><script>// JS
var app,viewModel;
/**
* viewModel 创建数据模型
* dt1 创建的数据集
* f1 创建数据集中的字段
* type:指定数据对应的类型
*/
viewModel = {
dt1: new u.DataTable({
meta:{
f1:{
type:'string'
}
}
})
};
/**
* app 创建框架服务
* el 指定服务对应的顶层DOM
* model 指定服务对应的数据模型
*/
app = u.createApp({
el:'body',
model:viewModel
});
// 数据集dt1创建空行,并为字符f1赋值'Hello World'
var r = viewModel.dt1.createEmptyRow();
r.setValue('f1','Hello World');
/**
* 数据集发生改变时,将#demo_input数据显示在#demo_div中
* @return {[type]} [description]
*/
var demoInput = document.getElementById('demo_input');
var demoDiv = document.getElementById('demo_div');
var getDtValue = function() {
var dtVal = viewModel.dt1.getValue('f1');
demoDiv.innerHTML = dtVal;
};
demoInput.addEventListener('blur',getDtValue);
getDtValue();
</script></div>
<div class="examples-code"><pre><code><!--
HTML
u-meta:框架特有标记,框架通过识别此标记创建对应UI组件,以及进行数据绑定
id,type.data,field为必选项
id:创建组件唯一标识
type:创建组件对应的类型
data:指定数据模型中的数据集
field:绑定数据集中对应的字段
-->
<input id="demo_input" u-meta='{"id":"t1","type":"string","data":"dt1","field":"f1"}' />
<div id="demo_div"></div></code></pre>
</div>
<div class="examples-code"><pre><code>// JS
var app,viewModel;
/**
* viewModel 创建数据模型
* dt1 创建的数据集
* f1 创建数据集中的字段
* type:指定数据对应的类型
*/
viewModel = {
dt1: new u.DataTable({
meta:{
f1:{
type:'string'
}
}
})
};
/**
* app 创建框架服务
* el 指定服务对应的顶层DOM
* model 指定服务对应的数据模型
*/
app = u.createApp({
el:'body',
model:viewModel
});
// 数据集dt1创建空行,并为字符f1赋值'Hello World'
var r = viewModel.dt1.createEmptyRow();
r.setValue('f1','Hello World');
/**
* 数据集发生改变时,将#demo_input数据显示在#demo_div中
* @return {[type]} [description]
*/
var demoInput = document.getElementById('demo_input');
var demoDiv = document.getElementById('demo_div');
var getDtValue = function() {
var dtVal = viewModel.dt1.getValue('f1');
demoDiv.innerHTML = dtVal;
};
demoInput.addEventListener('blur',getDtValue);
getDtValue();</code></pre>
</div>