2017-08-14 137 views
0

我使用Angularjs我的申請,我想在模塊之間傳輸數據,嘗試了所有的辦法,但數據沒有得到通過。請在這裏看看我的代碼。Angularjs從一個模塊傳遞值到另一個模塊

  1. 我有一個名爲部門frontapp模塊頁,而點擊特定部門,我想通過部門ID來departmentapp模塊,每個部門都會有自己的網頁。

    <a href="./school"><h5>{{school.schoolName}}</h5></a> 
    <ul data-ng-repeat="department in school.departments"> 
    <li data-ng-click="getdepartmentBydepartmentId(department.departmentId);setDepartmentId(department.departmentId)"> 
        <a href="./department"> {{department.departName}}</a> 
    </li> 
    
  2. 控制器

    $scope.getdepartmentBydepartmentId = function(departmentId){ 
        SchoolService.getdepartmentBydepartmentId(departmentId).then(function(response){ 
         $scope.department= response.data; 
        }); 
    } 
    
    $scope.getDepartmentId=function(){ 
        SchoolService.getDepartmentId().then(function(response){ 
         $scope.departmentId = response.data; 
        }); 
    } 
    
    $scope.setDepartmentId=function(departmentId) 
    { 
        //Some authentication code... 
        alert(departmentId); 
        SchoolService.setDepartmentId(departmentId); 
        alert(SchoolService.getDepartmentId()); 
    
        //Here I want to pass the username to homectrl.js 
        window.location.href="./department" 
    } 
    
  3. 的代碼服務的js代碼文件

    obj.getDepartmentId=function(){ 
        return departmentIDSchool; 
    }; 
    
    obj.setDepartmentId=function(departmentID){ 
        // var departmentID = null; 
        departmentIDSchool = departmentID; 
    }; 
    
    obj.getdepartmentBydepartmentId=function(departmentId){ 
        return $http.post('getdepartmentBydepartmentId?departmentId='+departmentId); 
    }; 
    
  4. 在departmentapp模塊 - departmentcontroller.js

    app.controller("SchoolController", SchoolController); 
    app.service("SchoolService",SchoolService); 
    angular.module("frontApp").SchoolService.getDepartmentId().then(function(response){ 
        $scope.departmentId = response.data; 
        alert($scope.departmentId); 
    }); 
    

但是在這裏DepartmentID的,我沒有得到。在堆棧溢出處理了很多問題之後,我開始知道在服務層我們需要getter和setter,但是即使放置之後它也不能工作。有人能幫我嗎?

回答

0

您可以在路由器

$routeProvider.when('/:primaryNav/:secondaryNav', { 
     templateUrl: 'resources/angular/templates/nav/'+$routeParams.primaryNav+'/'+$routeParams.secondaryNav+'.html' 
    }); 

容易傳遞變量一樣,見templateUrl的$ routeParams,你也可以把它注射到你的控制器,以獲得PARAMS。

+0

這不起作用。 –

相關問題