最好分为两层,第一层是放在body上,因为avalon2默认从body开始扫描。然后它上面主要用路由相关的东西。第二层是动态添加的VM 最近为普通VM也加上 onReady与onDispose http://avalonjs.coding.me/api... <!DOCTYPE html> <html> <head> <title>TODO supply a title</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script src='../dist/avalon.js'></script> <script> var vm = avalon.define({ $id: 'test', aaa: 'top', bbb: 'bbb1', change: function () { vm.aaa = 'ddd' }, ccc: 'ccc2' }); var sub = avalon.define({ $id: 'sub', aaa: 111, ddd: 333 }) sub.$watch('onDispose', function () { delete avalon.scopes[vm.$id] delete avalon.vmodels[vm.$id] }) setTimeout(function () { setTimeout(function () { document.querySelector('[ms-controller="sub"]').textContent = "" }, 3000) sub.aaa = 999 vm.aaa = 888 }, 3000) </script> </head> <body> <div ms-controller="test"> <div>{{@aaa}}</div> <div ms-controller="sub" style="color: red">{{@aaa}}</div> <div>{{@aaa}}</div> </div> </body> </html>
最好分为两层,第一层是放在body上,因为avalon2默认从body开始扫描。然后它上面主要用路由相关的东西。第二层是动态添加的VM
最近为普通VM也加上 onReady与onDispose
http://avalonjs.coding.me/api...