IxD*_*Day 6 javascript angularjs
我使用嵌套时遇到Angularjs问题ng-include与$compile功能.这是错误:
Error: [$injector:unpr] Unknown provider: $rootElementProvider <- $rootElement <- $location <- $anchorScroll <- ngIncludeDirective
Run Code Online (Sandbox Code Playgroud)
我想,我必须$rootElementProvider在编译流程中注入某个地方,但我不知道如何.
这是我的问题的一个问题:http ://plnkr.co/edit/K8iayGXGLx5QwHNNiLZ1?p=preview
所有代码都是必需的,我不能使用指令和控制器,模板也需要像这样缓存.此外,如果有人也知道如何摆脱已经运行的$timeout服务,$digest我将非常感激.
由于您是手动创建的,因此$injector您需要以某种方式告诉它从哪里获取$rootElement。一种方法是通过内联模块定义:
angular.injector(['ng', function($provide){
var $rootElement = angular.element(document.querySelector('body'));
$provide.value('$rootElement', $rootElement);
}]).invoke(function ($injector){
var localRootElement = $injector.get('$rootElement');
});
Run Code Online (Sandbox Code Playgroud)
我已经相应地更新了你的笨蛋。
至于避免使用的方法$timeout可以在详细答案中找到:
防止调用 $scope.$apply() 时出现错误 $digest already in Progress。
简而言之,您可以进行简单的检查(这并不意味着您应该这样做):
if(!$scope.$$phase) {
//$digest or $apply
}
Run Code Online (Sandbox Code Playgroud)
请参阅链接的答案了解更多详细信息。
| 归档时间: |
|
| 查看次数: |
431 次 |
| 最近记录: |