javascript - 执行条件 ng-if 检查的 "angular"方法是什么?

标签 javascript html angularjs

假设我有一个包含值“HOMEPAGE”的字符串

vm.string = "HOMEPAGE"

我想在 div 内部执行一个 ng-if,如果 vm.string 等于这五个字符串之一,它会显示。

"HOMEPAGE"
"ABOUT"
"STORE"
"EXAMPLE"
"SOMETHING"

我可以在 ng-if 中使用 or 运算符来实现预期效果

<div ng-if="WhateverController.string == 'HOMEPAGE'
    || WhateverController.string == 'ABOUT'
    || WhateverController.string == 'STORE'
    || WhateverController.string == 'EXAMPLE'
    || WhateverController.string == 'SOMETHING'">

This will display because the string is 'HOMEPAGE'

</div>

我也可以通过在我的 Controller 中创建一个返回 bool 值的函数来做到这一点。

vm.isTrue = function () {

    return (vm.string == 'HOMEPAGE'
        || vm.string == 'ABOUT'
        || vm.string == 'STORE'
        || vm.string == 'EXAMPLE'
        || vm.string == 'SOMETHING');

};

<div ng-if="WhateverController.isTrue">
This will display because the string is 'HOMEPAGE'
</div>

我想问大家的问题是,这两种方法中的哪一种被认为是更“有 Angular ”的方法?我偏爱在 javascript 内部执行此操作,因为它使 HTML 看起来更干净,但我很好奇是否有一种方法优于另一种方法以及为什么。

最佳答案

如果您打算只在代码的一个地方使用此检查,我会说这无关紧要,除非您希望 HTML 看起来更干净。这只是一个偏好问题。

另一方面,如果您要在代码中多次检查该条件,则使用函数会更好。

关于javascript - 执行条件 ng-if 检查的 "angular"方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37883580/

相关文章:

javascript - 我有两个全局函数,如果我从函数 1 中调用函数 2,我可以从函数 2 中的函数 1 访问本地代码吗

javascript - 在javascript中获取复选框值

javascript - Photoshop Javascript - 尝试创建新文本图层时出现语法错误

javascript - 更改 GET 请求后显示的 URL

jquery 摆脱按钮周围的虚线轮廓

javascript - AngularJS 种子中的多个 ng-App 代码段是什么意思?

javascript - 将 HTML 转换为 MS Word 时添加密码保护

html - Bootstrap 中容器和行之间的 div

angularjs - 停止 Ionic 中的某些内容滚动

javascript - 无法将动态参数传递给 Angular Directive(指令)