我有一个 AngularJS 控制器,它在特定页面上都使用,在路由中定义:
when("/search/:term", {controller:'SearchCtrl', templateUrl:'/static/templates/supersearch/list.html'});
并且还附加到页眉中的一个元素,该元素用于所有页面:
<div ng-controller="SearchCtrl">
<form class="navbar-form pull-left super-search">
...
</form>
<div>
我如何从控制器内部判断它正在运行的上下文?
我尝试过的事情:
初始化
我试图<div ng-controller="SearchCtrl" ng-init="init(true)">
告诉控制器它是否从标题搜索表单中运行,但它似乎ng-init
是在控制器之后执行的,所以它无权访问传递的参数。
传递$元素
如果我注入$element
到控制器,我可以访问该ng-controller
指令附加到的 DOM 节点,但是在带有路由的页面的情况下,角度会引发错误,因为没有$element
可用的注入。
所以我要么需要某种方式将参数传递给控制器,要么需要某种方式来判断控制器正在从哪个上下文运行(内联ng-controller
与路由)。谢谢!