编写通用代码

时间:2016-01-13 11:25:43

标签: javascript c# jquery .net logic

我有以下功能,其中我需要<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'?

2 个答案:

答案 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;
}