UNPKG

avalon2

Version:

an elegant efficient express mvvm framework

67 lines (66 loc) 1.56 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>新组件系统测试</title> <script type="text/javascript" src="../../dist/avalon.js"></script> </head> <body> <div ms-controller='widget1' > <ms-panel>{{@aaa}}</ms-panel> </div> <h1>ms-panel+ms-button组件</h1> <script type="text/javascript"> function heredoc(fn) { return fn.toString().replace(/^[^\/]+\/\*!?\s?/, ''). replace(/\*\/[^\/]+$/, '').trim().replace(/>\s*</g, '><') } avalon.component('ms-panel', { template: heredoc(function(){ /* <div> <div class="body"> <slot name="body"></slot> </div> <p><ms-button :widget="@button" /></p> </div> */ }), defaults: { body: "&nbsp;&nbsp;", button: { buttonText: 'click me!' } }, soleSlot: 'body' }) avalon.component('ms-button', { template: '<button type="button" ><span><slot /></span></button>', defaults: { buttonText: "button", onInit: function (e) { avalon.log(e.type) }, onReady: function (e) { avalon.log(e.type) }, onViewChange: function (e) { avalon.log(e.type) }, onDispose: function (e) { avalon.log(e.type) } }, soleSlot: 'buttonText' }) var vm = avalon.define({ $id: 'widget1', aaa: 111, bbb: 111 }) setTimeout(function(){ vm.aaa = 222 },2000) </script> </body> </html>