【问题标题】:ng-show not working in angularjsng-show 在 angularjs 中不起作用
【发布时间】:2015-09-11 22:44:22
【问题描述】:
   {{showSubHeader}}
            <div ng-show="showSubHeader" class="topPull" draggable >
            <button class="button-icon ion-bag"></button>
                           </div>       
        </div>  

表达式{{showSubHeader}} 从真变为假,从假变为真就好了。

showSubHeader 有一个布尔值。

showSubHeader=trueshowSubHeader=false

angular 正在获取值的变化。当我更改值时,我在控制台中看到 ng-show 表达式发生了变化,但它不会隐藏元素,即使它是 ng-show="false"。

我该如何解决这个问题?怎么回事?>

编辑:draggable 是一个如下所示的指令:

.directive('draggable', function ($animate) {
  return function(scope, element) {
       var startX = 0, startY = 0, x = 0, y = 0;

        var el = element[0];
        console.log(el)
        el.draggable = true;
        element.css({
       position: 'relative',
       cursor: 'pointer'
      });
        el.addEventListener(
            'dragstart',
            function(e) {


          element.addClass("animated slideInDown")
                return false;
            },
            false
        );

        el.addEventListener(
            'dragend',
            function(e) {

          element.addClass("animated slideInUp")
             scope.checkBill();
                return false;
            },
            false
        );
    }
})

支票账单

$scope.checkBill= function(){
    $scope.$apply(function(){
       $scope.showSubHeader=false;

    })
     $state.go('menu.TotalBill', {}, {inherit: true, notify:true})
  }

【问题讨论】:

  • 只需制作一个 jsfiddle 并意识到它可以工作 ;)
  • 你的 topPull 类在做什么?
  • 一定是别的东西...
  • 你100%确定typeof showSubHeader === boolean吗?如果计算结果为字符串,它将始终显示 ("false" === true)。
  • 我知道。我什至对角度都不陌生。我了解这里的工作原理,我不是第一次使用它。但我完全坚持这个

标签: angularjs


【解决方案1】:

你可以尝试隔离ng-show:

<div ng-show="showSubHeader">
    <div class="topPull" draggable >
        <button class="button-icon ion-bag"></button>
    </div>       
</div>  

【讨论】:

  • 尝试反转逻辑,使用 ng-hide="!showSubHeader"... 或尝试使用 ng-if。
  • 我有一个脚本 cdn,我已经添加了一段时间,基本上它会干扰它。删除它,一切都得到修复。感谢您的帮助:)
【解决方案2】:

试试:

<div ng-show="showSubHeader === true" class="topPull" draggable >
      <button class="button-icon ion-bag"></button>
</div>       

【讨论】:

  • 和 ng-show="showSubHeader === 'true' " ? ng-show="showSubHeader !== false " ?
猜你喜欢
  • 1970-01-01
  • 2015-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多