使用逻辑渲染Angular局部视图?

时间:2016-03-29 18:53:43

标签: javascript angularjs angular-ui-router

我正在为一家编辑公司创建一个新的前端网站,使用WordPress作为后端,Angular作为前端,使用Node / Express中间件进行服务器端渲染。

该社论有四种不同的文章类型:精选,快速,快速短片和视频。每个都有不同的样式,我需要确保它们是基于文章类型正确呈现。这些类型由文章JSON对象中的标志表示为1,2,3或4。

最初我尝试使用ng-if作为在这些类型之间进行排序的方法:

    <!-- Lead Article -->
    <div ng-if="posts.thisPost[0].acf.post_type == 1">
      Lead Article Content
    </div>

    <!-- Quick Article -->
    <div ng-if="posts.thisPost[0].acf.post_type == 2">
       Quick Article Content
    </div>

    <!-- Quick Short Article -->
    <div ng-if="posts.thisPost[0].acf.post_type == 3">
       Quick Short Article Content
    </div>

    <!-- Video Article -->
    <div ng-if="posts.thisPost[0].acf.post_type == 4">
       Video Article Content
    </div>

非常简单,显然它不起作用。如果帖子类型为1,它将仅呈现第一个div,但对于所有其他div,仅显示任何内容。我希望他们会过滤div,比如if,否则if if else if语句,但它不会那样工作。

有替代方案吗?或者,更好的是,有没有办法检查JavaScript中的帖子类型标志,并将视图指向正确的部分,如果每个都在一个单独的部分文件中?

1 个答案:

答案 0 :(得分:1)

就我的目的而言,ng-switch最终成为了合适的解决方案。

感谢@AmyBlankenship引起我的注意,这个Stack Overflow问题提供了为什么这是正确行动的基础:ngIf and ngSwitch AngularJS