为什么这个ng-show指令不工作?

Why is this ng-show directive not working?

本文关键字:工作 指令 ng-show 为什么      更新时间:2023-09-26

在我的angular 1.2.21应用程序中,我似乎错过了一些非常明显的ng-show设置(这里隔离了测试用例)。我希望一个元素只在字符串不为空时显示。假设我有一些动态的,可能是空的,带有静态标题的文本,我不希望在文本为空的情况下显示带有标题和空文本的整个元素。

I tried like so (complete plunkr)

html:

<body ng-controller="FooController">
  foo: "{{ foo }}"
  <div>{{ rand }}</div>
  <div ng-show={{ foo }}>Hello foo{{ foo }}!</div>
  <div ng-show={{ bar }}>You ought to be hiding!</div>
</body>

和js:

angular.module('MyApp', [])
  .controller('FooController', ['$scope',
    function($scope) {
      $scope.rand = Math.random();
      $scope.foo = $scope.rand > 0.5 ? "bar" : "";
      $scope.bar = false;
    }
  ]);

现在我希望"Hello foobar"<div>仅在随机值> 0.5时显示,并且为了进行双重检查,我添加了一个$scope.bar,这是假的,所以我肯定会期望"你应该隐藏!"<div>被隐藏

然而,它们不是。我遗漏了什么?

试试这个:

<body ng-controller="FooController">
  foo: "{{ foo }}"
  <div>{{ rand }}</div>
  <div ng-show="foo">Hello foo{{ foo }}!</div>
  <div ng-show="bar">You ought to be hiding!</div>
</body>

ng-show语法不正确。你不应该使用{{}}