我有一个带有if语句的函数,它包含两个单独的AJAX调用操作。基于一个名为subjectType的变量,调用的条件会发生变化。如果我试图获取用户信息,我需要给它userLoginName。如果我试图获取网站信息,我需要给它的webURL。
我可以使用if语句来完成这个任务,但是是否有更好的方法来做到这一点而不必重复大多数行呢?
var subjectType = if(/*I'll check the value of the drop down to see if a user or site report was asked for*/)?"GetGroupCollectionFromUser":"GetGroupCollectionFromWeb";
function parseSubjectColFromUser(subject){
var subjectGroups = [];
if (subjectType){
$().SPServices({
operation: "GetGroupCollectionFromUser",
userLoginName: subject,
completefunc: function(xData, Status){
$(xData.responseXML).find("Group").each(function(){
subjectGroups.push($(this).attr('Name'));
});
}
});
}else{
$().SPServices({
operation: "GetGroupCollectionFromWeb",
webURL: subject,
completefunc: function(xData, Status){
$(xData.responseXML).find("Group").each(function(){
subjectGroups.push($(this).attr('Name'));
});
}
});
}
return subjectGroups;
}发布于 2013-11-06 18:26:20
应该很容易.我还以为您希望在这里使用回调函数,因为您是通过AJAX请求来实现的。
function parseSubjectColFromUser(subject, myCallback){
var subjectGroups = [];
var params = {
operation: subjectType ? "GetGroupCollectionFromUser" : "GetGroupCollectionFromWeb",
completefunc: function(xData, Status){
$(xData.responseXML).find("Group").each(function(){
subjectGroups.push($(this).attr('Name'));
});
myCallback(subjectGroups);
}
};
if (subjectType) {
params.userLoginName = subject;
} else {
params.webURL = subject;
}
$().SPServices(params);
}https://stackoverflow.com/questions/19819761
复制相似问题