templateUrl有效,但$ templateCache.get没有?

时间:2015-01-03 17:18:45

标签: angularjs

如果我访问

http://0.0.0.0:3000/templates/hippo

我得到一个显示以下内容的页面:

hungry hungry hippos

如果我创建一个带有两个简单get调用的hippo指令来获得相同的模板,那就会发生一些奇怪的事情。

.directive 'hippo', ($templateCache)->
    templateUrl: 'templates/hippo'
    console.log $templateCache.get('templates/hippo')

首先,hungry hungry hippos元素内的页面上显示<div hippo></div>,但由于某种奇怪的原因,$templateCache.get('templates/hippo')的日志始终未定义。

有谁知道这会导致什么?我的路由由rails提供。这是页面加载的服务器日志:

Started GET "/templates/hippo" for 127.0.0.1 at 2015-01-03 17:16:41 +0000
Processing by ApplicationController#template as HTML
  Parameters: {"name"=>"hippo"}
  Rendered templates/hippo.html (0.0ms)
Completed 200 OK in 3ms (Views: 2.5ms | ActiveRecord: 0.0ms)

GET指的是templateUrl,但$templateCache.get('templates/hippo')似乎与我的服务器完全无关...

发生了什么?

1 个答案:

答案 0 :(得分:1)

首先,您需要将模板放入$templateCache run阶段,然后才能获得。 Refer this link

如果您因某些原因不想将它们明确地放在run阶段,您可以在构建阶段使用grunt-angular-templates。也有一个吞咽。
thisthis也会帮助您