javascript - AngularJS ui-router
伊谢尔伦
伊谢尔伦 2017-04-10 16:01:01
[JavaScript讨论组]

在使用ui-router的时候,会有这样的写法

var app = angular.module('app', ['ui.router']);

app.run(function($rootScope, $state, $stateParams){
    $rootScope.$state = $state;
    $rootScope.$stateParams = $stateParams;
});

app.controller('myCtrl', function($scope, $state, $stateParams){
    //这里面是获取$stateParams上的一些参数
    //或者进行路由跳转什么
});

我不太理解的就是$rootScope.$state = $state$rootScope.$stateParams = $stateParams这2个操作,以及在controller里面为什么可以注入$state, $stateParams

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(1)
PHP中文网

文档中

app.run(function($rootScope, $state, $stateParams){
    $rootScope.$state = $state;
    $rootScope.$stateParams = $stateParams;
});

这段的意思是说,由于你在html中经常要用到这两个服务,那你可以放到$rootScope中。那样你就不用每个controller去注入了。
当你直接在html中用$state时,$state在当前$scope中找不到,就会往父scope查找,一直找到$rootScope中,所以你即使不注入也可以找到。

当然你也可以不用放在$rootScope中 ,而是每个controller自己去注入,我自己其实也是这么做的。另外建议你如果要用官方推荐的方式的话,不要改他的命名$rootScope.$state,$前缀一般是服务,这样放在$rootScope可以避免冲突。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号