用于建立URL(其路径部分)和Controller的对应关系,一个Controller可以对应多个URL,但是一个URL只能对应一个Controller。
创新互联公司专业为企业提供安岳网站建设、安岳做网站、安岳网站设计、安岳网站制作等企业网站建设、网页设计与制作、安岳企业网站模板建站服务,10余年安岳做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
- 语法:add({pattren:'', action:''})
- 在router中添加一组pattren与Controller的对于关系
- sumeru.router.add(
- {
- pattern: '/studentList',
- action: 'App.studentList'
- }
- );
pattern
URL(其路径部分的值)
action
对应Controller的名称
如果你想关闭Server渲染,可使用下面方法:
- sumeru.router.add(
- {
- pattern: '/studentList',
- action: 'App.studentList'
- server_render:false
- }
- )
server_render
Server渲染开关,false:关闭,默认为开启
语法:setDefault(controllerName)
设置默认启动Controller
sumeru.router.setDefault('App.studentList');
语法:sumeru.router.externalProcessor.add(processor);
添加外部处理器
添加一个backbone的外部处理器 sumeru.router.externalProcessor.add(Backbone.Router.extend());
Model用来定义App的数据模型。
- Model.student = function(exports){
- exports.config = {
- fields: [
- {name : 'studentName', type: 'string'},
- {name : 'age', type: 'int'},
- {name : 'gender', type: 'string'}
- ]
- };
- };
字段的名称
字段的数据类型,包括一下数据类型:
类型 | 意义 |
---|---|
int | 整形 |
datetime | 日期 |
string | 字符串数 |
object | 对象 |
array | 数组 |
model | 数据模型 |
collection | 数据集合 |
使用relation时type属性值必须为“model”。
{name: 'class', type: 'model', relation: 'one' , model:'Model.class'},
one
引用一个Model
many
引入一个Collection
字段的默认值
{name: 'gender', type: 'string', defaultValue:'male'},
{name: 'name', type: 'string', validation:'length[1,20]'},
字段的验证,validation包括以下方法:
方法 | 意义 |
---|---|
length[min,max] | 字段值的长度在min-max的范围。 |
minlength(min) | 字段值不小于min |
maxlength(min) | 字段值不大于min |
required | 字段值不能为空 |
unique | 字段值必须唯一 |
telephone | 字段值必须为电话号码格式 |
mobilephone | 字段值必须为手机号码格式,长度为11位且必须为数字 |
字段值必须为email格式 | |
onlyletter | 字段值必须是字母 |
nospecialchars | 字段值不能包含特殊字符 |
date | 字段值必须是日期格式 |
url | 字段值必须是URL |
chinese | 字段值必须是中文 |
注:多个验证条件之间使用" | "连接
{name: 'name', type: 'string', validation:'length[1,20]|required'},
除了上面的验证方法外,还可以自定义验证方法。
- sumeru.validation.addRule(ruleName,{
- "runat" : "client",
- 验证方法 ,
- "msg" : "",
- });
ruleName
验证方法的名称,如"chinese"、"url"
runat
定义在哪个端上(client/server)进行验证
client
在客户端上进行验证
server
在服务器端进行验证
both
两段都需要验证
验证方法:该API中框架提供三种自定义验证方法(三种方法(regxp/func/asyncFunc)每次只能使用一种)
regxp
使用自定义正则表达式对字段进行验证
- sumeru.validation.addRule(ruleName,{
- "runat" : "client",
- "regxp" : "()",
- "msg" : "",
- });
func
使用自定义函数对字段进行验证
- sumeru.validation.addRule(ruleName,{
- "runat" : "client",
- "func" : function(){},
- "msg" : "",
- });
asyncFunc
该验证函数在服务器端运行,先获取指定modelObj的数据,然后根据asyncFunc中的方法进行验证,在callback中给出验证的结果。
- sumeru.validation.addRule(ruleName,{
- "runat" : "client",
- "asyncFunc":function(callback,k,v,modelObj){}
- "msg" : "",
- });
msg
验证失败后返回的信息
语法:create(modelName)
创建一个model
var newStudent = sumeru.model.create('Model.student')
newStudent.studentName = 'John';
语法:set(key,value)
设置Model中相应字段的值
newStudent.set('studentName','John');
语法:setData(dataMap)
使用dataMap对Model赋值
- newStudent.setData({'studnetName' : 'Smith',
- 'age' : 19,
- 'gender' : 'male'
- });
var name = newStudent.studentName;
语法:get(key)
获取某一字段的值
newStudent.get('studentName');
语法:getId()
获取model的唯一Id
newStudent.getId();
语法:getData()
返回一个JSON数据对象
newStudent.getData();
语法:destroy()
删除model
newStudent.destroy();
语法:onValidation(ispass, runat, validationResult)
对Model验证结果的监听方法
ispass
验证是否通过的标志
true
验证通过
false
验证不通过
runat
返回进行验证的端(客户端或者服务器端)
client
表示在客户端进行验证
server
表示在服务器端进行验证
validationResult
验证返回信息
- newStudent.onValidation = function(ispass, runat, validationResult){
- if(ispass){console.log("Validation success !");}
- console.log((runat=='client'?'Client':'Server')+(ispass==true?'Validation Success!':'Validation failed!'));
- for(var i = validationResult.length-1; i>=0; i--){
- console.log(runat=='client'?'Client':'Server')+'result is:'+validationResult[i].msg);
- }
- };
详细代码和说明请参考《Examples》文档。
Collection是Model的集合,我们之前曾使用过的subscribe()返回的结果集即是Collection。
- session.studentCollection = env.subscribe("pub-allStudents",function(myCollection){
- });
语法:create(dataMap)
创建一个Collection
- sumeru.collection.create({'studnetName' : 'Smith',
- 'age' : 19,
- 'gender' : 'male'
- });
语法:size()
获取collection中包含Model的数量。
session.studentCollection.size();
语法:add(row)
在collection中添加一行数据(每行数据实际是一个Model)。
session.studentCollection.add(newStudent);
语法:update(updateMap,where)
更新collection中满足条件的数据。
session.studentCollection.update({'name':'Jack'},{'name':'John'});
语法:remove(where)
将数据从collection中去除,但并不实际删除。
session.studentCollection.remove({'name':'John'});
当没有参数时,去除collection中所有数据。
语法:destroy(where)
将数据从collection中实际删除。
session.studentCollection.destroy({'name':'John'});
当没有参数时,删除collection中所有数据。
语法:setData(dataMap)
使用dataMap对Model赋值
语法:find(where)
查询Collection中符合条件的所有数据。
session.studentCollection.find({'name':'John'});
当没有参数时,返回所有的数据。
语法:addSorters()
collection中添加排序方法
session.studentCollection.addSorters('time','DESC')
collection按照"time"降序排序。
语法:clearSorters()
清空collection中排序方法
session.studentCollection.clearSorters();
语法:applyStorters()
手动执行所有的排序方法
session.studentCollection.applyStorters();
语法:get()
根据下标取出对应的数据
session.studentCollection.get(2);
语法:toJSON()
返回一个JSON对象
session.studentCollection.toJSON();
语法:getData()
获取包含所有数据的数组
session.studentCollection.getData();
语法:save()
将collection的修改保存到Server。
session.studentCollection.save();
语法:pluck(key)
返回Collection某一字段所有数据的数组
session.studentCollection.pluck('age');
语法:hold()
暂停collection实时更新
session.studentCollection.hold();
语法:releaseHold()
恢复对collection的实时更新
session.studentCollection.releaseHold();
语法:where()
在collection中指定查询条件,需要与find、update、remove、destroy连用。
- session.studentCollection.where({'gender':'male'});
- session.studentCollection.find();
返回collection中‘gender’值为‘male’数据的数组。
语法:orWhere()
在collection中添加一个“or”条件,需要与find、update、remove、destroy连用。
- session.studentCollection.orWhere({'gender':'male'});
- session.studentCollection.find();
语法:clearWheres()
清空collection中所有查询条件
session.studentCollection.clearWheres()
网页标题:Clouda API使用手册之Router Model Collection
转载来源:http://www.shufengxianlan.com/qtweb/news13/292613.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联