我已将“ngAnimate”作为我的 ngApp 的依赖项包含在内。
现在在 jQuery 文件中,我尝试使用以下方式访问它:
angular.injector(['ng', 'angular-sm']).invoke(['$compile', '$timeout' ,function ($compile, $timeout) {
但这给了我一个错误
Error: $injector:unpr
Unknown Provider
Unknown provider: $rootElementProvider <- $rootElement <- $animate <- $compile
然后我将其更改为:
angular.injector(['ng','ngAnimate', 'angular-sm']).invoke(['$compile', '$timeout' ,function ($compile, $timeout) {
angular.injector(['ng','ngAnimate', 'angular-sm']).invoke(['$animate','$compile', '$timeout' ,function ($animate,$compile, $timeout) {
这些也不起作用。
然后我尝试了:
var app_element = document.querySelector('[ng-app=angular-sm]');
angular.element(app_element).injector().invoke(['$compile', '$timeout' ,function($compile,$timeout) {
即我定义了 ngApp 的注入(inject)器并且它起作用了。为什么会这样?
最佳答案
Angular 应用程序中只有一个 $injector
,您可以使用它来获取它
angular.injector('rootModule')
或
angular.element(document).injector()
在您的情况下,它不是根模块,因此您遇到了错误。
关于angularjs - 将 angular.injector 与 ngAnimate 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25484686/