【问题标题】:Service is not working?服务不工作?
【发布时间】:2014-09-23 20:59:56
【问题描述】:

所以这是我想使用不同控制器将选择列表中的 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 中返回一些东西

请帮忙

【问题讨论】:

    标签: angularjs jsp service factory controllers


    【解决方案1】:

    您可以使用数据服务

    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()

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-31
      • 2016-09-19
      • 1970-01-01
      • 2018-05-18
      • 2017-04-27
      • 2013-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多