我有一个带有 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;
}
最佳答案
应该很简单...我还假设您想在此处使用回调函数,因为您是通过 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);
}
关于javascript - 简化 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19819761/