【问题标题】:Ng-include not functioning inside of ng-view templatesng-include 在 ng-view 模板中不起作用
【发布时间】:2017-02-07 02:26:04
【问题描述】:

文件结构:

--app
  --partials
    --navbar.html
 --submit
    --submission.html
index.html

我的 submits.html 中有一个 ng-include:

<ng-include src="'app/partials/navbar.html'" ></ng-include>

什么都没有出现。但是,如果我将相同的内容粘贴到 index.html 中,导航栏就会出现。我认为这可能与当前 html 文件的相对 apths 有关,所以我尝试了 src="'../partials/navbar.html'" 也没有运气。

是否需要做一些特别的事情才能让 ng-include 显示在 ng-view 模板中?

没有帮助的类似问题:

【问题讨论】:

  • 您确定正在加载模板吗?你在路由中使用 html5mode 吗?
  • @charlietfl 当ng-includeng-view 内部时,ng-include 中的模板甚至不会加载。
  • 但是没有它会加载模板吗?如果是这样,那真的很奇怪……但听起来更像是路线失败了。您可以添加路由更改错误处理程序来查找
  • @charlietfl Davids 对使用 ~/ 的评论有效。
  • 应该只需要/。将来......检查的简单方法是在浏览器开发工具网络中......可以在那里看到所有请求和路径。本来会返回 404

标签: javascript angularjs angularjs-ng-include


【解决方案1】:

Angular 在目录路径中找不到“app”。尝试在开头添加波浪号:

<ng-include src="'app/partials/navbar.html'" ></ng-include>

应该是:

<ng-include src="'~/app/partials/navbar.html'" ></ng-include>

【讨论】:

  • 戴夫,双引号对于 ng-include 使用路径是必需的,因为我将路径作为字符串传递。没有它,它在任何地方都不起作用。我已经提到这有效,只是不在ng-view
  • 这是不正确的src 在这种情况下读取一个表达式...需要额外的引号来表示字符串
  • 天哪,你是对的。因此,我的第二个怀疑是 Angular 文档无法“看到” App 路径。索引可以看到它,因为这两个文件处于同一级别,但也许您需要一个前导波浪号或斜线:
  • @DaveKaye 是波浪号!我从没想过要尝试,我尝试了斜线,但没有波浪号。那还能做什么?
  • ~/ 从服务器“基本”路径导航。
【解决方案2】:

问题原来是我在 Google Chrome 中的浏览器缓存。在我手动清除缓存之前,ng-include 没有出现在 HTML 中。每次在该文件中更改或移动 ng-include 时,我都必须清除我的缓存,如果它在 index.html 中,则没有必要。

经过一些测试,这个问题在Edge中不存在,但在Firefox中确实存在。

Chrome 版本:53.0.2785.116 m

【讨论】:

    猜你喜欢
    • 2015-12-22
    • 2018-07-18
    • 2016-02-03
    • 2014-09-29
    • 2018-03-27
    • 2016-12-24
    • 2013-05-16
    • 1970-01-01
    • 2016-01-20
    相关资源
    最近更新 更多