如何从一个角度模块传递另一个模块的值?

时间:2015-04-03 13:15:59

标签: angularjs angularjs-scope

Iam New To Angular Concept Iam试图将Value从一个模块传递到另一个模块。 我使用Meanjs Generator根据需要为每个模块添加了更多模块。

示例: - 餐厅模块的餐厅控制器: -

 angular.module('restaurants').controller('RestaurantController', ['$scope','$http','$stateParams', '$location', 'Authentication','$rootScope'
    function($scope,$http, $stateParams, $location, Authentication,$rootScope) { 

        $scope.create = function() {
            // Create new Restaurant object

           var resObj = {
                displayName: this.displayName,

            var restaurant = new Restaurants(resObj);

            // Redirect after save
            restaurant.$save(function(response) {
                $location.path('restaurants/'+ restaurant._id);
             **Need to Pass restaurant._id to the Menusconttoller**
            }, function(errorResponse) {
                $scope.error = errorResponse.data.message;
            });
        }; 

]);

我需要将餐馆ID传递给下面的菜单控制器吗?

angular.module('menus').controller('MenusController1', ['$scope','$http', '$stateParams', '$location', 'Authentication'
     function($scope,$http, $stateParams, $location,Authentication) {


       // Create new Menu
        $scope.create = function () {
            $scope.isCreateloading=true;
            var menusObj= {
                'displayName' : this.displayName
                restaurantId  : this.restaurantId // **where i need to recieve the Id which is pased from Restaurant Controller**            
          };


    here i need to get the Id from Restaurant Module 
            $scope.menuForm=menusObj;
                var  menu = new Menus1(menusObj);

                // Redirect after save
                menu.$save(function (response) {
                    $location.path('menus/'+menu._id);

                }, function (errorResponse) {
                    $scope.error = errorResponse.data.message;
                });
        };

]);

我做了$ rootscope Broadcasting,$ scope.emit等,但是所有的例子都在同一个模块中有更多的控制器。这不适合我的情景。

请建议: -

**如何将id从一个模块传递到另一个模块?** 感谢帮助新手!!

1 个答案:

答案 0 :(得分:10)

你可以这样做:

//this is one module
var myUtilModule = angular.module("myUtilModule", []);

// this is value to be shared among modules, it can be any value
myUtilModule.value  ("myValue"  , "12345");

//this is another module
var myOtherModule = angular.module("myOtherModule", ['myUtilModule']);

myOtherModule.controller("MyController", function($scope, myValue) {
      // myValue of first module is available here
}

这是教程AngularJS Modularization & Dependency Injection

快乐帮助!