【问题标题】:Is it possible to hide templates in the html page view是否可以在 html 页面视图中隐藏模板
【发布时间】:2014-07-06 15:50:28
【问题描述】:

我想知道是否可以隐藏html页面中的所有模板视图。

我正在使用主干和下划线来加载模板,如下所示

app.View.ShoppingPanelView = Backbone.View.extend({
    template: _.template($('#shopping-sideline').html()),

.....

在我的 jsp 页面中我会这样做

<jsp:include page="includes/templates-shopping.jsp" />

现在我使用 firebug 看到我的所有模板都是可见的。

是否有可能以某种方式将模板隐藏在最终的 html 页面中。原因是您可以看到模板包含代码并且不想显示内部事物的结构。

【问题讨论】:

  • 我猜不是,但你可以使用 requireJs 按需加载模板,因此模板上的源代码不会在 HTML 中可见

标签: templates backbone.js underscore.js


【解决方案1】:

在我看来,工作 SPA 毫无意义。为什么不在真正需要的时候加载它?

您可以使用延迟加载概念仅在必要时加载模板。尝试将所有模板文件分离到 html 文件中,然后使用 !text 加载。

例如,假设您只想在单击某个按钮时显示一个视图(或模板),那么您的代码将如下所示。

events:
   "click #someButton": "showNewView"

showNewView:->
    require['pathToNewTemplateOrView'], (TemplateOrView)->
        view = new TemplateOrView()

这样您的模板或视图只会在单击按钮时显示。

我总是在模板中避免逻辑的另一件事,例如 If 语句。 尝试在您的视图中执行此操作,并确保您的视图仅反映模型上的内容。

希望对你有帮助。

【讨论】:

  • 我了解在您需要时加载模板。但是仍然在加载时,您可以在获取请求中看到模板结构。如果我错了,请纠正我..
猜你喜欢
  • 1970-01-01
  • 2021-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多