首页 > 解决方案 > HTML div 未更新

问题描述

不是角度专家。我正在开发一个前端带有 angularjs 的 python-flask 应用程序。我对返回一个对象的python进行了http调用。然后我检查一个键的值是“dev”还是“prd”,然后使用 ng-show 显示相应的 div。我的问题是,每次单击按钮从 python 检索数据时,div 都不会正确更新。

angular.forEach(response.data,function (value,key) {
    if (value == 'dev') {
    $scope.showval="True";
    //$scope.showprd="False";

    } else if (value == 'prd') {

       $scope.showprd="True";
        //$scope.showval="False";
    }
});

我尝试了 $scope.$apply()、$timeout() 并且还尝试将 ng-show 变量设置为 false,但没有任何效果。$scope.$apply 给了我一个错误,表明摘要周期正在进行中。所以,我认为 div 是由 angular 处理的。需要帮助来确定问题所在。谢谢你的时间。

标签: angularjs

解决方案


您可以设置您showval,并且showprdfalse最初和特定条件下您可以按true如下方式分配它:

angular.forEach(response.data, function(value, key) {
    if (value == 'dev') {
        $scope.showval = true;
        $scope.showprd = false;

    } else if (value == 'prd') {
        $scope.showprd = true;
        $scope.showval = false;
    }
});

我假设你的 html 像

<div ng-show="showval && !showprd">Dev</div>
<div ng-show="!showval && showprd">Prod</div>

推荐阅读