2 elson tju Elson_tju 于 2016.04.23 12:54 提问

AngularJS用$rootScope给不同controller传参无效的问题 10C

控制器1中的html元素:

控制器1中的controller部分:

app.controller('showQ2', function($scope, $http, $rootScope) {
$scope.QidShow = function(Qid){
$rootScope.tmp = Qid;
}
});

控制器2js部分:

app.controller('QInfo',function($scope, $http, $rootScope){
$http.get(QInfoURL).success(function(data){
var Qid = $rootScope.tmp;
alert($rootScope.tmp);
});
})

alert为undefined~

求解释~~~

3个回答

xht1351549230
xht1351549230   2016.04.23 17:30

通俗的讲app.controller('showQ2',和app.controller('QInfo',相当于java类中的两个方法。$rootScope.tmp = Qid;在app.controller('showQ2',方法内,而alert($rootScope.tmp);在app.controller('QInfo',方法内,局部声明的变量在其他方法中当然是undefined

xht1351549230
xht1351549230   2016.04.23 17:36

/*常量*/
$rootScope.common = {
enabledStatus: [{code: false, name: '禁用'}, {code: true, name: '启用'}],
busTypeCodes: [],
taskTypeCodes: []
};

            /*查询监控业务类型*/
            service.getMonitorBusType().then(function (data) {
                $rootScope.common.busTypeCodes = data;
            });
            /*查询监控业务类型中任务类型*/
            $rootScope.btcChange = function (busTypeCode) {
                service.getMonitorBusTypeBybusTypeCode(busTypeCode).then(function (data) {
                    $rootScope.common.taskTypeCodes = data;
                });
            };
zangse08
zangse08   2017.03.20 21:20

QidShow这个方法执行了吗?如果没执行,建议把$rootScope.tmp放到函数外面,并且给一个初始值,不然他就是一个未定义的值,自然取不到,javascript是函数级作作用域

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!