【问题标题】:How to use ">" comparator in AngularJS ng-if statement如何在 AngularJS ng-if 语句中使用“>”比较器
【发布时间】:2015-11-25 21:14:36
【问题描述】:

是否可以在 HTML 的 ng-if 中使用“大于”比较器? 问题是“>”符号过早地关闭了 HTML 标记。

例如。 这个:<div ng-if="foo>0" class="bar"> (HTML STUFF) </div>

读作:<div ng-if="foo"> (0 class="bar"> HTML STUFF) </div>

我最终通过使用 ng-if="foo!=0" 解决了这个问题,但我可能会使用小于比较器,但我只是好奇以防万一我出于某种原因绝对必须使用大于符号.或者我是否可能不得不将这个逻辑移动到其他地方,比如在我的控制器中而不是在我的视图中?

编辑 1 所以看起来比较器本身肯定不是问题,我的代码中还发生了其他事情。奇怪的是,当我在比较器之前和之后有空格时,它可以工作,但没有空格就不行。如果这意味着什么,我也在使用 angular 1.3.15。

<div class="paginate" ng-if="list.total > 0"> 有效

<div class="paginate" ng-if="list.total>0"> 不起作用

【问题讨论】:

  • 把你的逻辑粘在一个函数里
  • "问题在于 ">" 符号过早地关闭了 HTML 标记。"。不,它没有。你为什么这么认为?
  • 这是一个plunker 的工作示例。
  • 您的情况还有其他问题。我已经多次使用 GT/LT 没有问题。

标签: javascript html angularjs angular-ng-if


【解决方案1】:

这是使用> 符号的示例。这很好用。

<div ng-if="myvariable.length > 2">

</div>

【讨论】:

  • @Tenzolinho 是的
【解决方案2】:

我建议在范围上创建一个方法并抽象条件的逻辑。业务规则可能会扩展和更改。使用单独的方法,您无需更改模板。

// in controller
$scope.isValidFoo = function () {
    return $scope.foo > 0;
}

// in template
<div ng-if="isValidFoo()">...</div>

【讨论】:

    猜你喜欢
    • 2014-12-13
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    相关资源
    最近更新 更多