服务不行?

时间:2014-09-23 20:59:56

标签: angularjs jsp service factory controllers

所以我希望将选择列表中的Selected选项从一个jsp页面传递到另一个使用不同控制器的页面。

但我想它不起作用,我不想使用视图或ngRoute

fileList.jsp

  <div ng-controller="fileController">
                    <form name="selectFile" class="form-horizontal" role="form">
                        <div class="row">
                            <div class="col-sm-2 col-md-offset-2">
                                <h4>Select a File<h4>
                            </div>
                            <div class="col-sm-3 col-md-offset-0">
                                <div class="form-group" >
                                    <select name="carrier_id" ng-model="selectedFile.serviceFile" ng-options="file[0] as file[1] for file in fileList" class="form-control">
                                     <option value=""> --Choose-- </option>
                                    </select>
                              </div>
                        </div>
                      <a href="${cp}/admin.jsp">Submit</a>                         </div>                   
                        <br/>
                    </form>
                </div>

admin.jsp

<div ng-controller="mainController">
      {{id.serviceFile}}
</div>

admin.js

    var app = angular.module('admin', ['viewServices']); 
    app.controller('mainController', ['$scope','$rootScope', '$http', 'SelectedFile', function($scope, $rootScope, $http, SelectedFile) {   

        $scope.id = SelectedFile; 
    }]);  
app.controller('fileController', ['$scope','$rootScope', '$http','SelectedFile' , function($scope, $rootScope, $http, SelectedFile){

    $http({
        method: 'GET',
        url :'hrp/filelist' 
    }).success( function(data,status,headers,config){ 
        data.file_list.splice(0, 1) // to remove header row
        $scope.fileList=data.file_list
        $scope.selectedFile = SelectedFile;
       alert($scope.fileList)
    }).error(function(){
        alert("error")
    })  
}]);

service.js

    var viewServices = angular.module('viewServices', []);

viewServices.factory('SelectedFile', function() {
  return {
    serviceFile:''
  };
});

包含所有脚本。  所以我只想要mainController应该返回$ scope.id

中的内容

请帮助

1 个答案:

答案 0 :(得分:0)

您可以使用数据服务

var viewServices = angular.module('viewServices', []);

viewServices.service('SelectedFile', function() {
    this.setData = function(data) {
        this.data = data;
    };
    this.getData = function() {
        return this.data;
    };
});

您可以注入服务并使用它。

无论您想在何处设置数据,请使用viewServices.setData($scope.selectedFile)

在下一页中,无论您想要获取此详细信息,只需在其控制器中注入相同的服务并使用var something = viewServices.getData()

希望这有帮助