编辑:问题底部的解决方案。
因此,很难提供所有代码,因为这种行为只发生在一个非常大的项目的上下文中,但基本上不是我的路由显示路由的templateUrl,索引被注入索引,然后该索引也不显示templateUrl。
我正在尝试用vanilla ui-router替换Apps for Apps路由。我已经按照here的步骤删除了基金会的路由,但似乎我仍然存在某种冲突。
这绝对让我疯狂。我的配置如下所示:
.config(['$stateProvider', $urlRouterProvider', function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('/', {
url: '/',
templateUrl: "<div><h1>Test</h1></div>"
})
;
}])
我放在templateUrl中的内容并不重要,它会被index.html取代,最后我会在索引中找到一个索引。
非常感谢任何帮助!
解决方案:
看起来,无论出于何种原因,如果模板的路径无法解析,ui-router会注入索引。 (它也可能只是注入父模板,所以在这种情况下它是索引,但在其他情况下可能略有不同,我不确定。查看Javier Vargas在评论中提供的链接以获取更多信息。)所以,如果我有:
.state('home', {
url: '/home',
templateUrl: 'INCORRECT PATH'
}
在我的情况中,结果是状态注入index.html。
对于在Foundation for Apps项目的上下文中使用ui-router进行路由的SPECIFIC问题,模板的路径是/templates/myhtmlfiles.html,因此状态将如下所示:
.state('home', {
url: '/home',
templateUrl: '/templates/home.html'
}
这是因为Foundation for Apps的路由插件将“模板”视为root,但是ui-router将您的工作目录视为root(这可能是“客户端”,“app”等,但是在安装应用程序的基础将是/模板上方的一个目录,因此您必须将其添加到路径中。)
感谢下面的答案帮助我理清为什么索引进入了ui-view div(重申,这是一个错误的模板路径。如果你遇到这个问题,请检查路线。如果你需要一个测试,用template:'test'替换templateUrl:看看是否会被插入。)
答案 0 :(得分:0)
除 templateUrl 外,您不应该使用模板吗?