zoukankan      html  css  js  c++  java
  • angularJS使用rootscope创建父域和子模态框通用的属性与函数

    1. 在声明创建controller指明引用$rootscope

    reviewInterfaceDo.controller('reviewInterfaceDo', function($scope, $rootScope, $http, $uibModal, $uibModalInstance, toastr,parameterRecord,user)
    

     2. 在controller中声明创建rootscope型变量commonScope ,并配置此scope内的函数和属性

    //define root scope for modal use
    	var commonScope = $rootScope.$new();
    	commonScope.rootSaveScore  = function (userScoreList) {
    		if (userScoreList != null && userScoreList.length > 0) {
    			var fd = new FormData();
    			var userScoreRecords = angular.toJson(userScoreList);
    			fd.append('userScoreRecords', userScoreRecords);
    			$http.post('/reviewProcess/save', fd, {
    				transformRequest: angular.identity,
    				headers: {
    					'Content-Type': undefined
    				}
    			})
    			.success(function (data){
    				toastr.success("submit "+data+" score record success");
    			})
    			.error(function (data) {
    				toastr.error("submit failed");
    			});
    		}
    		
    	};
    

    3.  在打开模态框的方法中传入commonScope 

    $scope.openModal= function() {
    		$scope.getReviewedScore();
    		$uibModal.open({
    			templateUrl: 'save.html',
    			controller: 'saveController',
    			scope: commonScope,
    			resolve: {
    					parentModalInstance: function() {
    						return $uibModalInstance;
    					},
    					userScoreList : function () {
    						return $scope.userScoreList;
    					}
    				}
    		});
    	}
    

     4. 在子模态框的controller中接收scope

    saveController.controller('saveController', function($scope, $http, $uibModalInstance, parentModalInstance, toastr,userScoreList)
    

    5. 最后就可以在子模态框的controller中调用commonScope 中的方法和属性啦

    $scope.save= function() {
    		//save reviewed score
    		$scope.rootSaveScore($scope.userScoreList);
    		//close modal
    		$uibModalInstance.dismiss('cancel');
    		parentModalInstance.close();
    	};
    

      * 在使用resolve传值时:

    $scope.deleteVehicle = function(flag, instance){
    		debugger;
    		var modalInstance = $uibModal.open({
    			templateUrl: 'common-delete.html',
    			controller: 'VehicleDeleteCtrl',
    			animation: true,
    			resolve: {
    				instance: instance, //  对象可以直接穿
    				flag: function() { // 其他比如字符串需要使用函数传
    					return flag;
    				}
    			},
    			size: 'lg'
    		});
    		
    		// 按下标删除
    		modalInstance.result.then(function() {
    			$scope.vehicles.splice($scope.vehicles.indexOf(instance), 1);
    		
    

      

  • 相关阅读:
    [转]JavaWeb学习总结(五十)——文件上传和下载
    [转]JavaWeb学习总结(四十九)——简单模拟Sping MVC
    [转]JavaWeb学习总结(四十八)——模拟Servlet3.0使用注解的方式配置Servlet
    [转]javaweb学习总结(四十七)——监听器(Listener)在开发中的应用
    [转]javaweb学习总结(四十六)——Filter(过滤器)常见应用
    [转]javaweb学习总结(四十五)——监听器(Listener)学习二
    js数组的方法
    神策埋点
    微信分享
    微信小程序
  • 原文地址:https://www.cnblogs.com/nelson-hu/p/6514075.html
Copyright © 2011-2022 走看看