【问题标题】:Getting an issue in applying margin on the runtime using angular使用角度在运行时应用边距时遇到问题
【发布时间】:2022-01-14 08:46:32
【问题描述】:

我有一个 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" 没有应用边距。

在所有条件下都尝试过警报,它们显示良好,但边距会导致问题。

【问题讨论】:

  • 你有没有做一个console.log或者一个断点来测试你是否真的碰到了应用边距的代码行?
  • 是的@JacobStamm 我在应用边距的行之前添加了一个警报,我还检查了元素,它显示了 data-ng-style="{"margin-right": "50px"}" 但在视图上没有任何改变!!!
  • 由于第一个和第二个返回返回完全相同的值,这两个条件之间唯一可能不同的是$scope.addClassForShiftingAsset 的值。不是一个解决方案,但它是在某个地方寻找

标签: javascript html css angularjs


【解决方案1】:

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

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

我们必须像这样使用它

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

然后在 JS 控制器中只返回边距值,即“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";
    }
}

【讨论】:

  • 这并不能解释第一个return { "margin-right": "50px" } 你的代码 sn-p 说它工作正常。我怀疑当时它实际上并没有工作。
  • @Taimoor 你是对的。这只是另一种方式,如果它是这样工作的,那么我们可以继续使用它。
猜你喜欢
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-31
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多