requirejs.config({
baseUrl: 'js/lib',
paths:{
app: '../app'
}
})
// Start the main app logic.
//requirejs===define===require源码:var requirejs, require, define;
requirejs(['jquery', 'underscore', 'backbone_1.2.3'],
function ($, _, Backbone) {
var Book = Backbone.Model.extend(
{
defaults:{
name:"unknnown",
author:"unknown&",
price:0
},
validate:function(data){
if(data.price>100){
return "大于100了";
}
}
} );
/*function Book(){
this.defaults = 上面那个
}*/
var javabook = new Book({
name:"thinking in java"
})
// 监听模型"change"事件
javabook.on('change', function(model) {
//console.log('change事件被触发');
});
// 监听"change:price"事件
/*previous()方法接收一个属性名,并返回该属性在修改之前的状态;
previousAttributes()方法返回一个对象,该对象包含上一个状态的所有数据。
需要注意的是,previous()和previousAttributes()方法只能在数据修改过程中调用
(即在模型的change事件和属性事件中调用)*/
javabook.on('change:price', function(model, value) {
var price = model.previous('price');
if(price < value) {
console.log('价格上涨了' + (value - price) + '元.');
} else if(price > value) {
console.log('价格下降了' + (value - price) + '元.');
} else {
console.log('价格没有发生变化.');
}
});
// 监听error事件,当验证失败时触发
javabook.on('invalid', function(model, error) {
console.log(error);
});
// 通过set方法设置模型数据
javabook.set('name', 'Java7入门经典');
javabook.set('author', 'Ivor Horton');
javabook.set('price', 883,{
validate:true
//silent : true不校验
});
/*unset()方法用于删除对象中指定的属性和数据
clear()方法用于删除模型中所有的属性和数据*/
javabook.clear();
var name = javabook.get("name");
var author = javabook.escape("author");
console.log(javabook);
console.log(name);
console.log(author);
}
);

http://yujianshenbing.iteye.com/blog/1748571

最新文章

  1. 10个最好的 JavaScript 动画库和开发框架
  2. 【HDU5955】Guessing the Dice Roll/马尔科夫
  3. DIRECTORY_SEPARATOR 和 PATH_SEPARATOR的区别
  4. 使用 Express 和 waterline 创建简单 Restful API
  5. 洛谷P1755 斐波那契的拆分
  6. Python学习笔记1—模块
  7. 测序深度和覆盖度(Sequencing depth and coverage)
  8. 构建 XCache 的基本步骤
  9. 锋利的jQuery第2版学习笔记6、7章
  10. Android_AsyncTask_Method
  11. sql server 2008 在与 SQL Server 提示建立连接时出现与网络相关的或特定于实例的错误
  12. C primer plus 第五版十二章习题
  13. .Neter玩转Linux系列之五:crontab使用详解和Linux的进程管理以及网络状态监控
  14. JS闭包作用域解析
  15. react-native获取屏幕尺寸
  16. Blender学习笔记
  17. ajax的4个字母分别是什么意思
  18. vscode c++ 编译生成后,调试时无法命中断点
  19. MapReduce的洗牌(Shuffle)
  20. C++ 0x 使用 shared_ptr 自动释放, 防止内存泄漏

热门文章

  1. mysql常见故障诊断
  2. 32、从零开始写CMOS摄像头驱动
  3. Activity生命周期的回调,你应该知道得很多其它!--Android源代码剖析(下)
  4. 是男人就下100层【第四层】——Crazy贪吃蛇(3)
  5. Behavioral模式之Memento模式
  6. [Recompose] Flatten a Prop using Recompose
  7. Linux 常用性能工具
  8. jquery获取选中select的文本,值等
  9. maven打包到本地库
  10. 【codeforces 742C】Arpa's loud Owf and Mehrdad's evil plan