我通过视图中的函数参数将值传递给控制器。然后我将该值存储在$ scope中。然后我试图通过范围访问相同的值,但在不同的HTML页面。但价值不可用。我正在使用UI路由器进行路由。谁能告诉你这可能是什么原因?
这是obj.roleId在openwindow1函数中传递给控制器的第一页。
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<table class="table">
<thead align="center" class="thead-inverse">
<tr>
<th>
Role Name
<div class="getSortClass('roleName')"></div>
</th>
<th>
Role ID
<div class="getSortClass('roleID')"></div>
</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<tr align="center">
<td>{{obj.roleName}}</td>
<td>{{obj.roleID}}</td>
<td><button class="btn btn-primary">Edit
User</button><button class=
"btn btn-primary">Delete</button></td>
</tr>
</tbody>
</table>
</body>
</html>
这是控制器。我将值存储在$ scope.roleIdk中:
.controller('UserRoleEdit', ['$compile', '$scope', '$window',
function($compile, $scope, $window) {
$scope.openWindow1 = function(roleID) {
$window.open(
'http://localhost:9000/#/homepage/userRoleEdit',
'User Role
Edit',
'width=1300,height=1000');
$scope.roleIDk = roleID;
alert($scope.roleIDk);
};
}
]);
最后我试图在另一个html视图中访问它:
答案 0 :(得分:0)
如果您在视图之间共享它,则范围将不同,因此在视图范围中添加的任何内容都不会出现在另一个视图范围内。
您可以将其存储在服务中。服务是单身,因此它们将在您的所有视图中共享。
您也可以将其存储在浏览器本地存储中。
在您的场景中,您可能希望将其作为URL上的参数传递:
$window.open('http://localhost:9000/#/homepage/userRoleEdit/' + roleID, User Role Edit', 'width=1300,height=1000');
然后,您可以使用其他视图控制器中的$routeParams
服务来访问它。