索引正在注入而不是templateUrl

时间:2015-07-07 17:08:39

标签: angularjs angular-ui-router zurb-foundation

编辑:问题底部的解决方案。

因此,很难提供所有代码,因为这种行为只发生在一个非常大的项目的上下文中,但基本上不是我的路由显示路由的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:看看是否会被插入。)

1 个答案:

答案 0 :(得分:0)

templateUrl 外,您不应该使用模板吗?