我有以下功能,其中我需要<div class="modal fade" id="crowdmodal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content" style="background: url('satinweave.png')">
<div class="modal-body" style="background: url( 'http://i.imgur.com/KP1I8LA.png'); background-position: top; background-repeat: no-repeat;">
<p> cool text... </p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary btn-sm"><i class="fa fa-thumbs-up"></i> Got it!</button>
</div>
</div>
</div>
</div>
等if
条件的硬编码。
因此,strCondition字符串具有'AssignedTo','ClaimStatusId','ClaimTypeId'
之类的任何值,然后它将被重定向到相应的'AssignedTo','ClaimStatusId','ClaimTypeId'
条件
if
有什么方法可以消除这些硬编码的值 'AssignedTo', 'ClaimStatusId', 'ClaimTypeId'?
答案 0 :(得分:0)
这样的方法?
function ChangeIDToString(strCondition,id)
{
return _func[strCondition]();
}
var _func = {
"AssignedTo":function(){ GetUserName(); },
"ClaimStatusId":function(){ GetClaimStatus(); }
....
}
答案 1 :(得分:0)
您可以尝试使用对象来存储字符串值,当然它仍然是硬编码的,因为机器无法理解它需要执行&#34; GetUserName()&#34;当条件是&#34; AssignedTo&#34;。
var Conditions = {
GetUserName: "AssignedTo",
GetClaimStatus: "ClaimStatusId",
GetClaimType: "ClaimTypeId"
}
function ChangeIDToString(strCondition,id)
{
if (strCondition.indexOf(Conditions.GetUserName) > -1)
return GetUserName(id)
else if (strCondition.indexOf(Conditions.GetClaimStatus) > -1)
return GetClaimStatus(id)
else if (strCondition.indexOf(Conditions.GetClaimType) > -1)
return GetClaimType(id);
else
return id;
}