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

时间:2014-08-10 09:12:05

标签: javascript angularjs ng-show

在我的角度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>仅显示随机值是&gt; 0.5,为了进行双重检查,我添加了$scope.bar,这是假的,所以我肯定会期待“你应该隐藏!”隐藏<div>

但是,他们不是。我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

试试这个:

<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语法不正确。你不应该使用{{}}