阳光暖心 2016-01-15
已第二次使用AngluarsJS来进行业务开发.虽然队友们对此报有一些情绪与意见.认为比较难用,主要集中在性能方面的考虑.但是我却认为我们从根本上改变了整个前端开发的模式.更多引出了许多前的系统设计方案.起码从开发来说,开发效率,代码可维护性,简易性,条理性都有本质上的提升.
{
twitters:{
"1":{
context: "我快没有水啦,各位赶紧给我加水!!!",
createTime:"2015-12-01",
comments:{
"1":{
context:"你是个水桶?",
createUser:{$ref:"user.1"},
createTime:"2015-12-01"
},
"2":{
context:"头脑里头是有水的",
createUser:{$ref:"user.3"},
createTime:"2015-12-01"
}
}
}
}
users:{
"1":{
account:"zhengmx",
email:"[email protected]",
nickname:"代码牧",
favor:{
"1":{$ref:'twitters.1'}
},
createTime:"2015-12-01"
},
"3":{
account:"yangsl",
email:"[email protected]",
nickname:"杨圣琳",
favor:{},
createTime:"2015-12-01"
}
}
$login:{
curUser:{$ref:'users.3'}
}
}var twitter = ...//传入微博对象,假设id为1
var twitterComment = {
context:"的确是一个大水桶"
}
//传入的微博评论内容
var objSer = ObjService.getService(); //提到与服务端对象对接的封装方法,简化前端的使用
//用户提交评论
objSer.push(twitters_id+'.comments',twitterComment,function(resp){
console.info('resp',resp);//将返回结果打印。
} );"twitters.1":{
context: "我快没有水啦,各位赶紧给我加水!!!",
createTime:"2015-12-01",
comments:{
"1":{
context:"你是个水桶?",
createUser:{$ref:"user.1"},
createTime:"2015-12-01"
},
"2":{
context:"头脑里头是有水的",
createUser:{$ref:"user.3"},
createTime:"2015-12-01"
},
"3":{
context:"的确是一个大水桶",
createUser:{$ref:"user.3"},
createTime:"2015-12-01"
}
}
}//收藏一个微博
objSer.push('$login.curUser.favor',twitter,function(resp){
console.info('resp',resp);//将返回结果打印。
} );"usesr.3":{
account:"yangsl",
email:"[email protected]",
nickname:"杨圣琳",
favor:{
"1":{$ref:'twitters.1'}
},
createTime:"2015-12-01"
}var = loginInfo{
curUsr: {
account:"zhengmx",
password:"123456"
}
};
objServer.push('login.',loginInfo,function(resp){
$scope.loginMsg = resp.data.loginMsg;
if(resp.data.loginCode==1){//登录成功
page.toIndex();//跳首页
}else{
}
});//监听某个对象的写入,业务完成成将输出写入对象中,而非直接返回给前端,此方法与前端无保直接交互
@ListenSet(id="login");//注解代表的是监听set入login.curUser的动作,而非直接提供一个接口方法
public Obj login(Obj rt, Obj newValue, Obj oldValue){
List<Obj> rs =
rt.find("users.name="+newValue.get("curUser.account")+"&users.password="+newValue.get("curUser.password"));
if(rs.size()>1){
newValue.get("curUser").ref(rs.get(0));//将新值置为引用持久化对象中用户的对象。
login.put("sessionid", WebConf.getSession());//取得session,其实会通过cookie将session传送到浏览器中。
login.put("loginCode",1);
login.put("loginMsg","登录成功");
}else{
login.put("loginCode",2);
login.put("loginMsg","登录不成功");
}
return newValue;//返回的是前端set入的对象,而是不响应的对象.
}$login:{
curUser:{$ref:'users.3'}
sessionid:"D092A8DE4ED756EDFEAFE04F038B4086",
loginCode:1,
loginMsg:"登录成功"
}var $listen_login = function(rt,newValue,oldValue,webConf){
var rs =
rt.find("users.name="+newValue.get("curUser.account")+"&users.password="+newValue.get("curUser.password"));
if(rs.length>1){
newValue.curUser=rs[0];//将新值置为引用持久化对象中用户的对象。
login.sessionid= weConf.session);//取得session,其实会通过cookie将session传送到浏览器中。
login.loginCode=1;
login.loginMsg="登录成功";
}else{
login.loginCode=2;
login.loginMsg="登录不成功";
}
return newValue;//返回的是前端set入的对象,而是不响应的对象.
}