【问题标题】:Can i use another template engine with angularjs?我可以使用另一个带有 angularjs 的模板引擎吗?
【发布时间】:2013-07-27 03:25:59
【问题描述】:

我可以在 Angular 中使用另一个模板引擎吗?我用谷歌搜索了它,其中大部分只是指 Angular 使用的当前模板引擎,我需要一个具有简单逻辑的模板引擎,例如“如果”、“或”……谢谢。

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    Angular 没有模板引擎替代品,主要是因为没有像其他框架(即 Backbone.js)那样的模板引擎。在 Angular 中,有字符串插值 ({{expression}}) 但没有模板。

    首先我会向您指出 ngIf 指令,您可以在其中有条件地包含 DOM 元素:

    <div ng-if="somethingIsTrue">TRUE</div>
    <div ng-if="!somethingIsTrue">FALSE</div>
    

    如果这还不够,请考虑使用您选择的模板引擎来预处理您的 HTML。您可以设置一个 grunt 任务,将模板文件转换为 Angular 可以引用的 HTML 文件。

    【讨论】:

      【解决方案2】:

      Brian 提到 ng-ifng-switch 也可能满足您的需求:

      <div ng-switch on="selection">
          <div ng-switch-when="settings">Settings Div</div>
          <span ng-switch-when="home">Home Span</span>
          <span ng-switch-default>default</span>
      </div>
      

      这将使用ng-switch-when 中指定的值打开selection 的值,并使用ng-switch-default 作为默认情况。

      Documentation

      【讨论】:

        【解决方案3】:

        你或许可以重写 $interpolateProvider,但不建议这样做

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-08-02
          • 2017-03-09
          • 2012-07-12
          • 2014-02-28
          • 1970-01-01
          • 2013-10-21
          • 2018-07-07
          • 2011-02-06
          相关资源
          最近更新 更多