使用 angular 在运行时应用保证金时遇到问题

Getting an issue in applying margin on the runtime using angular

我有一个 li 元素,我们在其中调用方法 SiteAssetStyleForShiftedAsset,如下所示:

<li class="holder-white title-holder" data-ng-style="{{SiteAssetStyleForShiftedAsset()}}">
 ...
</li>

从我们的 javascript 控制器中,它被这样调用:

function SiteAssetStyleForShiftedAsset() {

    var isPPMJob = localStorage.getItem("IsPPMJob").toUpperCase();

    var shiftingAsset = $scope.addClassForShiftingAsset;

    if (isPPMJob == "FALSE") {

        // it is working fine here. Margin is being applied correctly. 
        return { "margin-right": "50px" };
    }
    else if (isPPMJob == "TRUE") {
        if (shiftingAsset.toUpperCase() == "TRUE")
        {
            //it is not working fine on this line. Margin is not being applied.
            return { "margin-right": "50px" };
        }
        else {
            return { "padding-right:": "15px" };
        }
    }
}

所以它在第一个 if (isPPMJob == "FALSE") 中工作正常,但在我们检查 shiftingAsset.toUpperCase 的其他地方() == "TRUE" 未应用保证金。

在所有情况下都尝试过警报,它们显示正常,但边距会导致问题。

我找到了解决该问题的方法。问题出在 HTML 我们使用 data-ng-style 这样的代码

data-ng-style="{{SiteAssetStyleForShiftedAsset()}}"

我们必须像这样使用它而不是这个

data-ng-style="{'margin-right': SiteAssetStyleForShiftedAsset()}"

然后在 JS 控制器中只是 return 边距值,即“10px”、“50px”等

函数 SiteAssetStyleForShiftedAsset() {

    var isPPMJob = localStorage.getItem("IsPPMJob").toUpperCase();

    var shiftingAsset = $scope.addClassForShiftingAsset;

    if (shiftingAsset == "false"){
                //alert("abc");
         return "10px";
                //return { "padding-right:": "15px" };
    }
    else{
        return "50px";
    }
}