<td colspan="1">{{case.Name}}</td>
<td colspan="1">{{case.total}}</td>
<td colspan="1">{{case.passed}}</td>
<td colspan="1">{{case.failed}}</td>
<td colspan="1" ng-click="showAll(case.Name)">{{case.totalCheck}}</td>
当用户点击此列(totalCheck
)时,名称将存储在变量$rootscope.name
中,并打开另一个html页面,我需要此变量。
该控制器名为angular1。
analyzer.run(function($rootScope) {
$rootScope.name= '';
});
$scope.showAll=function(item){
$rootScope.name= item;
$window.open('/scripts.html');
}
对于另一页,我有另一个控制器
var analyzer = angular.module('analyzer', []);
analyzer.controller('angular2', function($scope, $rootScope) {
alert($rootScope.name);
});
这里说明名称的值是未定义的。你如何在2页之间共享变量?
答案 0 :(得分:0)
我认为你应该在这里使用ngRoute。
按照以下步骤操作(您甚至可以使用hrf="#/scripts.html/{{case.Name}}"
并将case.name
作为routeParams
传递,而无需使用$rootScope
):
1)包括//ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-route.js 2)按照以下方式更改您的功能。
analyzer.run(function($rootScope,$location) {
$rootScope.name= '';
});
$scope.showAll=function(item){
$rootScope.name= item;
$location.path('/scripts.html');
}
3)为您的路由添加配置。
var analyzer = angular.module('analyzer', ['ngRoute']);
analyzer.config(function($routeProvider) {
$routeProvider
.when("/scripts.html", {
templateUrl : "scripts.html"
});
});