mvvm.html 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>MVVM</title>
  6. </head>
  7. <body>
  8. <div id="mvvm-app">
  9. <input type="text" v-model="someStr">
  10. <input type="text" v-model="child.someStr">
  11. <p v-class="className" class="abc">
  12. {{someStr}}
  13. <span v-text="child.someStr"></span>
  14. </p>
  15. <p v-html="child.htmlStr"></p>
  16. <button v-on:click="clickBtn">change model</button>
  17. </div>
  18. <script src="http://cdn.bootcss.com/vue/1.0.25/vue.js"></script>
  19. <script src="./js/observer.js"></script>
  20. <script src="./js/watcher.js"></script>
  21. <script src="./js/compile.js"></script>
  22. <script src="./js/mvvm.js"></script>
  23. <script>
  24. var vm = new MVVM({
  25. el: '#mvvm-app',
  26. data: {
  27. someStr: 'hello ',
  28. className: 'btn',
  29. htmlStr: '<span style="color: #f00;">red</span>',
  30. child: {
  31. someStr: 'World !'
  32. }
  33. },
  34. methods: {
  35. clickBtn: function(e) {
  36. var randomStrArr = ['childOne', 'childTwo', 'childThree'];
  37. this.child.someStr = randomStrArr[parseInt(Math.random() * 3)];
  38. }
  39. }
  40. });
  41. vm.$watch('child.someStr', function() {
  42. console.log(arguments);
  43. });
  44. </script>
  45. </body>
  46. </html>