/**
* @ description Model MVC中M 数据模型
* @ Object
* @ public
* @ create method IE不支持
*/ if(typeof Object.create !== 'function'){
Object.create = function(o){
function F(){}
F.prototype = o;
return new F()
}
} Math.guid = function(){
return 'xxxxxxxx-xxxx-4yxx-xxxxxxxxxxxx'.replace(/[xy]/g,function(c){
var v = Math.random()*16|0,
c = c == 'x' ? v : (v & 0x8),
c = c.toString(16);
return c.toUpperCase()
})
} var Model = {
created : function(){ }, prototype : {
init: function(){
console.log('prototype.init')
}
}, extend : function(o){
for(var i in o){
this[i] = o[i]
}
}, include : function(o){
for(var i in o){
this.prototype[i] = o[i]
}
}, create : function(){
var object = Object.create(this);//object 继承 Model
object.parent = this;
object.prototype = object.fn = Object.create(this.prototype) // object.prototype 继承 Model.prototype
object.created();
return object
}, init : function(){
var instance = Object.create(this.prototype);
instance.parent = this;
instance.init.apply(instance,arguments);
return instance;
}
} /*
*Object 存储实例对象
*/ Model.records = {}; var Asset = Model.create(); Model.include({
init : function(attr){
if(attr){
this.load(attr)
}
},
load : function(attr){
for(var i in attr){
this[i] = attr[i]
}
}
}) Model.include({
newRecords : true, create : function(){
this.newRecords = false;
this.id = this.id || Math.guid();
this.parent.records[this.id] = this.dup();
}, destroy : function(){
delete this.parent.records[this.id]
}, updata : function(){
this.parent.records[this.id] = this.dup();
}, save : function(){
this.newRecords ? this.create() : this.updata()
}, dup : function(){
var o = {};
for(var i in this){
o[i] = this[i]
}
return o;
} }) Model.extend({
find : function(id){
var record = this.records[id]
if(!record) throw('no you need object')
return record.dup()
}, created : function(){
this.record = {}
}
}) Model.extend({
populate : function(values){
this.records = {};
for(var i = 0, len = values.length; i < len; i++){
var record = this.init(values[i]);
record.newRecords = false;
record.id = record.id || Math.guid();
this.records[record.id] = record;
}
}
}) var asset = Asset.init({name : 'xiaohui108'})

自己构建MVC中的M的更多相关文章

  1. 《Entity Framework 6 Recipes》中文翻译系列 (20) -----第四章 ASP.NET MVC中使用实体框架之在MVC中构建一个CRUD示例

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第四章  ASP.NET MVC中使用实体框架 ASP.NET是一个免费的Web框架 ...

  2. ASP.NET Core MVC中构建Web API

    在ASP.NET CORE MVC中,Web API是其中一个功能子集,可以直接使用MVC的特性及路由等功能. 在成功构建 ASP.NET CORE MVC项目之后,选中解决方案,先填加一个API的文 ...

  3. 在ASP.NET Core MVC中构建简单 Web Api

    Getting Started 在 ASP.NET Core MVC 框架中,ASP.NET 团队为我们提供了一整套的用于构建一个 Web 中的各种部分所需的套件,那么有些时候我们只需要做一个简单的 ...

  4. ASP.NET Core MVC 中的 [Controller] 和 [NonController]

    前言 我们知道,在 MVC 应用程序中,有一部分约定的内容.其中关于 Controller 的约定是这样的. 每个 Controller 类的名字以 Controller 结尾,并且放置在 Contr ...

  5. MVC中使用Entity Framework 基于方法的查询学习笔记 (一)

    EF中基于方法的查询方式不同于LINQ和以往的ADO.NET,正因为如此,有必要深入学习一下啦.闲话不多说,现在开始一个MVC项目,在项目中临床学习. 创建MVC项目 1.“文件”--“新建项目”-- ...

  6. 如何在 ASP.NET MVC 中集成 AngularJS(2)

    在如何在 ASP.NET MVC 中集成 AngularJS(1)中,我们介绍了 ASP.NET MVC 捆绑和压缩.应用程序版本自动刷新和工程构建等内容. 下面介绍如何在 ASP.NET MVC 中 ...

  7. 在 ASP.NET MVC 中充分利用 WebGrid (microsoft 官方示例)

    在 ASP.NET MVC 中充分利用 WebGrid https://msdn.microsoft.com/zh-cn/magazine/hh288075.aspx Stuart Leeks 下载代 ...

  8. MVC中的数据注解和验证

    数据注解和验证 用户输入验证在客户端浏览器中需要执行验证逻辑. 在客户端也需要执行. 注解是一种通用机制, 可以用来向框架注入元数据, 同时, 框架不只驱动元数据的验证, 还可以在生成显示和编辑模型的 ...

  9. 如何在 ASP.NET MVC 中集成 AngularJS(1)

    介绍 当涉及到计算机软件的开发时,我想运用所有的最新技术.例如,前端使用最新的 JavaScript 技术,服务器端使用最新的基于 REST 的 Web API 服务.另外,还有最新的数据库技术.最新 ...

随机推荐

  1. 借助flexpaper实现word在线预览和打印

    为了实现word能够在web上尽量以原始的排版样式展现出来,选择基于activex控件的方式太过于依赖某种浏览器,并且存在可能需要花费金钱购买相应的控件产品:于是借助flexpaper这种flash展 ...

  2. javascript 图片延迟加载

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  3. Java加密技术

    相关链接: Java加密技术(一)——BASE64与单向加密算法MD5&SHA&MAC Java加密技术(二)——对称加密DES&AES Java加密技术(三)——PBE算法  ...

  4. (4)opencv在android平台上实现 物体跟踪

    最近项目时间很紧,抓紧时间集中精力去研究android平台的opencv里的物体跟踪技术 其他几篇文章有时间再去完善吧 从网上找到了一些实例代码,我想采取的学习方法是研究实例代码和看教程相结合,教程是 ...

  5. Install wxWidgets-3.0.2 on GNU/Linux Debian

    转载自 http://www.binarytides.com/install-wxwidgets-ubuntu/ wxWidgets wxWidgets is an application devel ...

  6. spring_150803_component

    实体类: package com.spring.model; public class DogPet { private int id; private String name; private in ...

  7. cojs 疯狂的字符串 题解报告

    首先这道题是GT考试的加强版本QAQ 当n<k的时候,答案显然是10^n 当n=k的时候,答案显然是10^n-1 这样就有20分辣 之后我们考虑k<=20的做法 显然设f(i,j)表示前i ...

  8. iOS 应用内付费(IAP)开发步骤

    折腾好几天,原来是税务信息没有填写,哎...  国内就是好啊,没有这些麻烦的事情...  :) 等24小时,等税务的审核结果...     有结论了 才能测试内购.... 如果税务信息没有填写完毕,p ...

  9. CentOS系统配置solr

    1.新建一个文件夹 比如soft   cd /soft   wget http://apache.fayea.com/lucene/solr/6.0.0/solr-6.0.0-src.tgz  --下 ...

  10. Keil MDK编译器(V4.03)与J-LINK使用

    前几天进手了一个J-LINK,因为H-JTAG毕竟对MDK支持的不是太完美,比如用keil mdk上面的下载按钮烧录程序,不是直接就能烧录进去,而是弹出H-Flash软件,再手工选择文件烧录:而且用H ...