大虾们,我想在自己定义的两个部件中做个订阅发布,就是在用户登录的时候发布用户登录信息,而其他部件关于这个用户信息的自动触发改变,该怎么写啊,我看了很多demo,但是人家都是写在一个页面的,我不知道该怎么写,悟性差
我的两个部件是这样的login.js
dojo.provide("top.login");
dojo.require("dijit._Widget");
dojo.require("dijit._Templated");
dojo.declare(
"top.login",
[dijit._Widget,dijit._Templated],
{ widgetsInTemplate: true, //在Widget申报 widgetsInTemplate, 如果不加载的话模板中的部分dijit部件将无法正常显示
templatePath: dojo.moduleUrl("top","templates/login.html"),
_save:function(){
this.greet= u.setUserInfo(this.userNameNode.value,this.deptNameNode.value); // 希望在保存数据的时候就应该发布消息,对么
dijit.byId("dialog").hide();
dijit.byId("topBar")._userinfo();
},
startup:function(){
},
}
);
topBar.js 的合心代码
_userinfo:function(){
// dojo.subscribe(u,this,"this.userinfoNode.innerHTML");
var getUserInfo = u.getUserInfo();
this.userinfoNode.innerHTML =u.getUserInfo(); //这个是取值的并在这里显示,该如何订阅呢?
},
common.js (一个公用函数)function utils(){
}(function(){
var userinfo={};
utils.prototype.setUserInfo=function(userName,deptName){
userinfo.userName = userName;
userinfo.deptName = deptName;
}
utils.prototype.getUserInfo=function(){
return userinfo;
}
utils.prototype.getUserInfo = function(){
return "欢迎您【"+userinfo.deptName+"】"+userinfo.userName;
}
})(); var u = new utils();
我的两个部件是这样的login.js
dojo.provide("top.login");
dojo.require("dijit._Widget");
dojo.require("dijit._Templated");
dojo.declare(
"top.login",
[dijit._Widget,dijit._Templated],
{ widgetsInTemplate: true, //在Widget申报 widgetsInTemplate, 如果不加载的话模板中的部分dijit部件将无法正常显示
templatePath: dojo.moduleUrl("top","templates/login.html"),
_save:function(){
this.greet= u.setUserInfo(this.userNameNode.value,this.deptNameNode.value); // 希望在保存数据的时候就应该发布消息,对么
dijit.byId("dialog").hide();
dijit.byId("topBar")._userinfo();
},
startup:function(){
},
}
);
topBar.js 的合心代码
_userinfo:function(){
// dojo.subscribe(u,this,"this.userinfoNode.innerHTML");
var getUserInfo = u.getUserInfo();
this.userinfoNode.innerHTML =u.getUserInfo(); //这个是取值的并在这里显示,该如何订阅呢?
},
common.js (一个公用函数)function utils(){
}(function(){
var userinfo={};
utils.prototype.setUserInfo=function(userName,deptName){
userinfo.userName = userName;
userinfo.deptName = deptName;
}
utils.prototype.getUserInfo=function(){
return userinfo;
}
utils.prototype.getUserInfo = function(){
return "欢迎您【"+userinfo.deptName+"】"+userinfo.userName;
}
})(); var u = new utils();
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货