[关闭]
@52fhy 2016-01-22T08:23:28.000000Z 字数 1190 阅读 524

03-backbone模型--绑定事件

backbone


  1. <!DOCTYPE html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>title</title>
  5. <script src="http://the5fireblog.b0.upaiyun.com/staticfile/jquery-1.10.2.js"></script>
  6. <script src="http://the5fireblog.b0.upaiyun.com/staticfile/underscore.js"></script>
  7. <script src="http://the5fireblog.b0.upaiyun.com/staticfile/backbone.js"></script>
  8. </head>
  9. <body>
  10. <script>
  11. var Man = Backbone.Model.extend({
  12. initialize: function(){
  13. //事件绑定
  14. //object.on(event, callback, [context])别名: bind
  15. this.on("change:name", function (model) {
  16. console.log('name被改变为:' + this.get('name'));
  17. //console.log(model);
  18. });
  19. //为对象添加验证规则,以及错误提示。invalid是内置事件.参考Catalog of Events
  20. //也可以在对象生成之后绑定invalid事件,例如man.on('invalid', function (model, error) {});
  21. this.on('invalid', function (model, error) {
  22. console.log(model);
  23. console.log(error);
  24. });
  25. },
  26. //默认属性
  27. defaults: {
  28. name:'张三',
  29. age: '38'
  30. },
  31. // 默认情况下validate在save之前调用, 但如果传递了 {validate:true},也可以在set之前调用。
  32. //校验失败将触发"invalid"事件, 并用此方法返回的值设置模型上的validationError属性。
  33. validate:function(attr){
  34. if(attr.name == '') {
  35. return "name不能为空!";
  36. }
  37. },
  38. });
  39. var man = new Man();
  40. //1.设置属性,将会触发事件绑定
  41. //man.set({"name":"yjc", "age":'22'});
  42. //2.
  43. man.set({"name":""});
  44. //man.save();//会调用model.validate方法验证
  45. //也可以手动触发model.validate方法验证
  46. man.set({"name":""}, {"validate": true});
  47. </script>
  48. </body>
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注