【发布时间】:2018-02-21 22:11:14
【问题描述】:
我有 2 个 js 文件,即 CollegeApp.js 和 branchApp.js。我有两个控制器 CollegeController.js 位于collegeApp.js ng-app 内,BranchController.js 位于branchApp.js ng-app 内。
我正在从我的 html 重定向到另一个页面。
这是我的html
<li data-ng-click="getBranchByBranchId(branch.branchId); setBranchId(branch.branchId)">
{{branch.branchName}}
</li>
这个html页面在collegeApp.js中。点击分支名称后,我正在调用方法,它的控制器看起来像这样。
CollegeController.js
var CollegeController = function($scope, $rootScope, $http, $location, $route,CollegeService,$routeParams) {
$rootScope.pageTitle = $route.current.title;
$scope.getBranchId = function() {
CollegeService.getBranchId().then(function(response) {
$scope.branchId = response.data;
});
}
$scope.setBranchId=function(branchId) {
CollegeService.setBranchId(branchId);
$rootScope.passBranchId = branchId;
window.location.href="./branch?
branchId='+$rootScope.passBranchId";//Here I am redirecting to branch page with id.//
}
}
分支页面在branchApp.js 中,以上代码在collegeApp.js 中。 现在在 BranchController.js 中,我试图捕获从上一页发送的 branchId。
BranchController.js
var BranchController = function($scope, $rootScope, $http, $location, $route,BranchService,$routeParams)
{
$scope.branchId = $rootScope.passBranchId;//Here i am trying to get branchId//
console.log($scope.branchId);//I am getting undefined.
}
我尝试了 $rootScope,$routeParams。但它们都不起作用。 有什么可能的方法可以将 branchId 从collegeApp 传递到branchApp?还是我错过了什么?
【问题讨论】:
-
我打算建议使用服务来共享数据,因为这是他们的目的,但您已经在使用一个。为什么不直接将
CollegeService添加到BranchController并在其中调用CollegeService.getBranchId()? -
好的。我在 BranchController 中添加了 CollegeService 作为依赖项。现在在 BranchController 中我可以直接调用 getBranchId() 吗?
-
是的,我不明白为什么不这样做。整个服务点能够在控制器/指令/组件之间共享逻辑/数据。
-
但是当我在 BranchController 中添加 CollegeService 作为依赖项时,我使用了两个不同的 app.js 文件,尽管我在分支索引页面中包含了 CollegeService.js,但它显示了 Unknown service provider CollegeService 错误
-
哦,这是两个完全独立的应用程序吗?那是另一个故事。如果您使用 2 个完全不同的应用程序,我不确定是否可以做您想做的事情
标签: angularjs