尝试将$ element注入ng-view会导致未知提供程序错误

时间:2016-01-25 13:21:26

标签: angularjs ng-view

我想知道这是一个错误还是记录在某个地方。似乎将$ element注入由ng-view指令附加的控制器失败。这是一个例子:

的script.js:

{{1}}

http://plnkr.co/edit/S7ziY6i3eMGn4RtetG0l?p=preview

1 个答案:

答案 0 :(得分:4)

MainCtrl$compile服务注入,该服务提供$element作为本地服务。 BookCtrl注入了ngRoute$element没有$compile作为本地提供。有关ngRoute注入的本地人的更多信息,请参阅AngularJS $compile API Reference -- controllers

$scope注入的当地人$template$resolve以及ngRoute地图的其他属性。

来自locals文档:

  

locals

     

$controller服务使用的本地地图          控制器实例化。 resolve包含。{1}}          locals地图的已解析值。此外,$scope还包含:

     
      
  • $template - 当前路线范围。
  •   
  • locals - 当前路线模板HTML。
  •   
     

$resolve将被分配到路由范围的resolveAs属性。你可以覆盖           属性名称,在路由定义中使用$compile。看到           $routeProvider了解更多信息。

- AngularJS ngRoute $route API Reference

来自$scope文档:

  

控制器

     

控制器构造函数。控制器在预链接阶段之前被实例化,并且可以被其他指令访问(请参阅require属性)。这允许指令彼此通信并增强彼此的行为。控制器可以使用以下本地人

进行注射(并支持括号表示法)      
      
  • $element - 与元素相关的当前范围
  •   
  • $attrs - 当前元素
  •   
  • $transclude - 元素的当前属性对象
  •   
  • {0:"first",2:"second",5:"first"}; - 预先绑定到正确的转换范围的转换链接函数:
  •   

- AngularJS Comprehensive Directive API - controller