dropdown列表以及联动
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<link type="text/css" rel="stylesheet" href="../style/avalon.doc.css"/>
<script src="../avalon.js"></script>
<script type="text/javascript">
require(['dropdown/avalon.dropdown.js'], function () {
var dropdowns = [],
subDropdowns = []
avalon.ready(function () {
var dropdownVm = avalon.define('dropdown', function (vm) {
vm.provinces = [{
value: '江苏',
label: '江苏'
}, {
value: '河北',
label: '河北'
}]
vm.cities = {
江苏: [{
value: '南京',
label: '南京'
}, {
value: '杨州',
label: '杨州'
}],
河北: [{
value: '保定',
label: '保定'
}, {
value: '石家庄',
label: '石家庄'
}]
}
vm.rows = [{
note: "from",
province: "江苏",
city: "南京"
}, {
note: "to",
province: "河北",
city: "石家庄"
}]
vm.$opt = {
onInit: function (el) {
dropdowns.push(el.$id)
},
onChange: function (val, old, vm) {
var position = dropdowns.indexOf(vm.$id),
dropdown = avalon.vmodels[dropdowns[position]],
subDropdown = avalon.vmodels[subDropdowns[position]]
subDropdown.source = []
subDropdown.source = avalon.mix(true, [], dropdownVm.$model.cities[dropdown.value])
}
}
vm.$subOpt = {
onInit: function (el) {
subDropdowns.push(el.$id)
}
}
});
avalon.scan();
});
});
</script>
<script src="../highlight/shCore.js"></script>
</head>
<body>
<div class="wrapper" ms-controller="dropdown">
<h2>dropdown(下拉框)</h2>
<p>联动的dropdown</p>
<ul>
<li ms-repeat-row="rows">
<span style="display:inline-block;width: 30px;margin: 10px;">{{row.note}}:</span>
<select ms-duplex="row.province" ms-widget="dropdown, $, $opt">
<option ms-repeat-option="provinces" ms-attr-value="option.value" ms-attr-label="option.label"></option>
</select>
<select ms-duplex="row.city" ms-widget="dropdown, $, $subOpt">
<option ms-repeat-option="cities[row.province]" ms-attr-value="option.value"
ms-attr-label="option.label"></option>
</select>
{{row.province}}-{{row.city}}
</li>
</ul>
<pre class="brush:html;gutter:false;toolbar:false;" ms-skip>
</pre>
</div>
</body>
</html>