大佬教程收集整理的这篇文章主要介绍了angularjs – Angular JS viewContentLoaded在初始主页载入上加载两次,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
app.run(function ($rootScope,$log) { 'use Strict'; $rootScope.$state = $state; $log.warn("gets here"); $rootScope.$on('$viewContentLoaded',function(){ $log.warn("gets here2"); }); });
"gets here" "gets here2" "gets here2"
而我的路由如下
$urlRouterProvider.when('','/'); // For any unmatched url,send to 404 $urlRouterProvider.otherwise('/404'); $stateProvider .state('home',{ url: '/',templateUrl: 'views/search.html',controller: 'SearchCtrl' })
我的Index.html
<div id="canvas"> <ng-include src="'views/partials/header.html'"></ng-include> <!-- container --> <div ui-view ></div> <!-- /container --> <ng-include src="'views/partials/footer.html'"></ng-include> </div>
然后,一旦$状态服务实际解决您的本地状态,事件再次被触发,转换到它,加载模板等.
所以总结一下,它不是因为错误的配置,也不是您的模板加载两次.这只是uiView的工作原理.
您甚至可以通过完全注释掉您的状态定义和大部分index.html内容(ui-view本身除外)来进行验证. $viewContentLoaded仍将被触发一次.
源代码摘录:
uiView指令声明:
{ reStrict: 'ECA',terminal: true,priority: 400,transclude: 'element',compile: function (tElement,tAttrs,$transcludE) { return function (scope,$element,attrs) { ... updateView(true); ... } } }
function updateView(firstTimE) { ... currentScope.$emit('$viewContentLoaded'); currentScope.$eval(onloadExp); }
有关更多信息,请参阅GitHub – viewDirective.js上的完整源代码
以上是大佬教程为你收集整理的angularjs – Angular JS viewContentLoaded在初始主页载入上加载两次全部内容,希望文章能够帮你解决angularjs – Angular JS viewContentLoaded在初始主页载入上加载两次所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。