技术标签: Backbone ViewUI backnone mvc javascript
var Book = Backbone.Model.extend({
defaults: {
ID: "",
BookName: ""
},
idAttribute: "ID",
initialize: function () {
console.log('Book has been initialized');
this.on("invalid", function (model, error) {
console.log("Houston, we have a problem: " + error)
});
},
constructor: function (attributes, options) {
console.log('Book\'s constructor had been called');
Backbone.Model.apply(this, arguments);
},
validate: function (attr) {
if (!attr.BookName) {
return "Invalid BookName supplied."
}
}
});
var Book = Backbone.Model.extend({
defaults: {
ID: "",
BookName: ""
},
idAttribute: "ID",
initialize: function () {
console.log('Book has been initialized');
this.on("invalid", function (model, error) {
console.log("Houston, we have a problem: " + error)
});
},
constructor: function (attributes, options) {
console.log('Book\'s constructor had been called');
Backbone.Model.apply(this, arguments);
},
validate: function (attr) {
if (!attr.BookName) {
return "Invalid BookName supplied."
}
},
urlRoot: 'http://localhost:51377/api/Books'
});
// Lets perform a create operation [CREATE]
var book = new Book({ BookName: "Backbone Book 43" });
book.save({}, {
success: function (model, respose, options) {
console.log("The model has been saved to the server");
},
error: function (model, xhr, options) {
console.log("Something went wrong while saving the model");
}
});
// Now let us try to retrieve a book [READ]
var book1 = new Book({ ID: 40 });
book1.fetch({
success: function (bookResponse) {
console.log("Found the book: " + bookResponse.get("BookName"));
}
});
// Lets try to update a book [UPDATE]
var book1 = new Book({ ID: 40 });
book1.fetch({
success: function (bookResponse) {
console.log("Found the book: " + bookResponse.get("BookName"));
// Let us update this retreived book now (doing it in the callback) [UPDATE]
bookResponse.set("BookName", bookResponse.get("BookName") + "_updated");
bookResponse.save({}, {
success: function (model, respose, options) {
console.log("The model has been updated to the server");
},
error: function (model, xhr, options) {
console.log("Something went wrong while updating the model");
}
});
}
});
// Let us delete the model with id 13 [DELETE]
var book2 = new Book({ ID: 40 });
book2.destroy({
success: function (model, respose, options) {
console.log("The model has deleted the server");
},
error: function (model, xhr, options) {
console.log("Something went wrong while deleting the model");
}
});
var BookEx = Backbone.Model.extend({
defaults: {
ID: "",
BookName: ""
},
idAttribute: "ID",
// Lets create function which will return the custom URL based on the method type
getCustomUrl: function (method) {
switch (method) {
case 'read':
return 'http://localhost:51377/api/Books/' + this.id;
break;
case 'create':
return 'http://localhost:51377/api/Books';
break;
case 'update':
return 'http://localhost:51377/api/Books/' + this.id;
break;
case 'delete':
return 'http://localhost:51377/api/Books/' + this.id;
break;
}
},
// Now lets override the sync function to use our custom URLs
sync: function (method, model, options) {
options || (options = {});
options.url = this.getCustomUrl(method.toLowerCase());
// Lets notify backbone to use our URLs and do follow default course
return Backbone.sync.apply(this, arguments);
}
});
文章浏览阅读1.1k次。热文导读|点击标题阅读互联网寒冬下,程序员如何突围提升自己?已有 Android 项目集成 Flutter 寻坑记“37岁,年薪50万,一夜被裁”:伪上班,毁掉了多..._字节跳动java开源项目
文章浏览阅读2k次,点赞2次,收藏8次。关键字: on数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。在使用left jion时,on和where条件的区别如下:1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的..._having on语句
文章浏览阅读1.1w次,点赞6次,收藏27次。算法导论第31章第一节第8题。只要是边不相交的简单多边形,也就是说,不仅凸多边形,还有各种奇形怪状的凹多边形,都可以用格林公式求出面积。格林公式:若函数P(x,y), Q(x,y)在由一条或几条光滑曲线所围成的闭区域D上连续,且有连续的一阶偏导数,则有L为区域D的边界曲线,并取正方向。边不相交的简单多边形正好是由数条线段围成的闭区域,所以可以使用格林公式。令P=0, Q=x,则面积S = 设第i个..._格林公式求多边形面积
文章浏览阅读9.5k次,点赞3次,收藏3次。nvm1. 概念详情点击nvm全名node.js version management,是一个node的版本管理工具首先最重要的是:一定要卸载已安装的 NodeJS,否则会发生冲突。然后下载 nvm-windows 最新安装包,直接安装即可。_nvm
文章浏览阅读7.7k次。相信大家在工作中面试过程中经常被问到,让你印象最深刻的一个bug是什么,这是一个开放性的题目,并没有标准答案,每个人接触过的系统都不一样,遇到过的问题也不一样,可能面试官只是想看一下你的表达能力,以及平常在工作中是否会进行总结。这类问题可以挑选容易被人忽略的场景,难以想到的场景,特殊机型的兼容性或者特殊操作下才会出现的问题等。接下来为大家分享一个我今天遇到的一个问题:由于缓存中key的设置不合理导..._面试过程中遇到你印象最深刻的bug 是什么
文章浏览阅读2.7k次。Task.java private boolean resumeTopActivityInnerLocked(ActivityRecord prev, ActivityOptions options) { ... // 1.获取栈顶的activity ActivityRecord next = topRunningActivity(true /* focusableOnly */); ... ..._removepausetimeout
文章浏览阅读482次。1.更新环境apt-get update2.安装bind9apt install bind93.配置/etc/bind/named.conf 文件(服务器域解析文件),其中Router.com、TestIpsec.com是需要解析的域名zone "Router.com"{ type master;file "db.Router.com";};zone "TestIpsec.com"{ type master;file "db.TestIpsec.com";};4._ubuntu16.04搭建dns内网服务器
文章浏览阅读1.8k次。开发工具与关键技术:VS、创建数组对象作者:陆桂超撰写时间:2019年7月27日1、 如下图所示是一个动态添加的table表格,这里显示有三条数据。那么如何把这三条数据传到控制器呢?我们可以把这三条数据封装到一个数组里面,然后把数组传到控制器。2、首先在for循环外面声明一个数组,记住不能在for循环里面声明数组,因为如果在for循环里面声明数组,这样就每循环一次都会创建一个数组,而我们..._ets定义数组
文章浏览阅读103次。概述MyBatisMyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。以开发sql语句的工作量为代价换取高灵活性##Hello MyBatis1、添加依赖<dependency> _mybatis indexof(',')==1
文章浏览阅读1.9k次。原文章:使用gperftool + libuwind + graphviz来分析程序性能为了了解程序的执行时间以及各个函数之间的调用关系,可以通过Google的gperftool来统计函数之间的关系以及时间信息。通过分析每个函数的时间信息,就可以看程序的关键消耗点在什么地方。1. 安装gperftools:http://code.google.com/p/gperftools/do_gperftools使用详解
文章浏览阅读101次。12个常用数学函数函数名描述实例输入输出abs()求绝对值$abs = abs(-4.2); //4.2数字绝对值数字ceil()进一法取整echo ceil(9.999); // 10浮点数进一取整floor()舍去法取整echo floor(9.999); // 9浮点数直接舍去小数部分fmod()浮点数取余x=5.7;...
文章浏览阅读346次。http://blog.csdn.net/lmj623565791/article/details/46858663https://github.com/hongyangAndroid/Android_Blog_Demos_leonids安卓