Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在angularjs中的两个控制器之间共享$scope属性,而不是它的值?_Javascript_Angularjs - Fatal编程技术网

Javascript 如何在angularjs中的两个控制器之间共享$scope属性,而不是它的值?

Javascript 如何在angularjs中的两个控制器之间共享$scope属性,而不是它的值?,javascript,angularjs,Javascript,Angularjs,我是AJs的新手,我正在尝试与另一个控制器共享$scope.showdropdown指令,以便第二个控制器可以在其主体中调用此指令 这就是我想要的: 我尝试了各种各样的东西,工厂等,但没有运气 有人能告诉我怎么做吗 如果只是需要在控制器之间共享的简单数据(即没有功能、验证或其他模型逻辑),则可以使用值服务: .controller('firstCtrl', function($scope, myVal){ $scope.shared = myVal; // 'shared' on sco

我是AJs的新手,我正在尝试与另一个控制器共享$scope.showdropdown指令,以便第二个控制器可以在其主体中调用此指令

这就是我想要的: 我尝试了各种各样的东西,工厂等,但没有运气
有人能告诉我怎么做吗

如果只是需要在控制器之间共享的简单数据(即没有功能、验证或其他模型逻辑),则可以使用
服务:

.controller('firstCtrl', function($scope, myVal){
    $scope.shared = myVal; // 'shared' on scope now references value service
    $scope.shared.showdropdown = false;

})
.controller('secondCtrl', function($scope, myVal){
   $scope.shared = myVal;
   if(username and pass correct){
      $scope.shared.showdropdown = true; // updates myVal value
   }
})
.value('myVal', {}) // register service, initializing with an object object

对于
工厂
服务
服务类型,概念相同,实现非常相似。如果您需要共享功能,而不仅仅是数据,请选择其中之一。工厂示例:

.controller('firstCtrl', function($scope, MyFactory){
    $scope.shared = MyFactory;
    ...
})
.controller('secondCtrl', function($scope, MyFactory){
    $scope.shared = MyFactory;
    ...
})
.factory('MyFactory', function(){
    var obj = {
        //showdropdown: false
    };

    obj.someFunc = function(){};

    return obj;
})

如果只是需要在控制器之间共享的简单数据(即没有功能、验证或其他模型逻辑),则可以使用
服务:

.controller('firstCtrl', function($scope, myVal){
    $scope.shared = myVal; // 'shared' on scope now references value service
    $scope.shared.showdropdown = false;

})
.controller('secondCtrl', function($scope, myVal){
   $scope.shared = myVal;
   if(username and pass correct){
      $scope.shared.showdropdown = true; // updates myVal value
   }
})
.value('myVal', {}) // register service, initializing with an object object

对于
工厂
服务
服务类型,概念相同,实现非常相似。如果您需要共享功能,而不仅仅是数据,请选择其中之一。工厂示例:

.controller('firstCtrl', function($scope, MyFactory){
    $scope.shared = MyFactory;
    ...
})
.controller('secondCtrl', function($scope, MyFactory){
    $scope.shared = MyFactory;
    ...
})
.factory('MyFactory', function(){
    var obj = {
        //showdropdown: false
    };

    obj.someFunc = function(){};

    return obj;
})

如果只是需要在控制器之间共享的简单数据(即没有功能、验证或其他模型逻辑),则可以使用
服务:

.controller('firstCtrl', function($scope, myVal){
    $scope.shared = myVal; // 'shared' on scope now references value service
    $scope.shared.showdropdown = false;

})
.controller('secondCtrl', function($scope, myVal){
   $scope.shared = myVal;
   if(username and pass correct){
      $scope.shared.showdropdown = true; // updates myVal value
   }
})
.value('myVal', {}) // register service, initializing with an object object

对于
工厂
服务
服务类型,概念相同,实现非常相似。如果您需要共享功能,而不仅仅是数据,请选择其中之一。工厂示例:

.controller('firstCtrl', function($scope, MyFactory){
    $scope.shared = MyFactory;
    ...
})
.controller('secondCtrl', function($scope, MyFactory){
    $scope.shared = MyFactory;
    ...
})
.factory('MyFactory', function(){
    var obj = {
        //showdropdown: false
    };

    obj.someFunc = function(){};

    return obj;
})

如果只是需要在控制器之间共享的简单数据(即没有功能、验证或其他模型逻辑),则可以使用
服务:

.controller('firstCtrl', function($scope, myVal){
    $scope.shared = myVal; // 'shared' on scope now references value service
    $scope.shared.showdropdown = false;

})
.controller('secondCtrl', function($scope, myVal){
   $scope.shared = myVal;
   if(username and pass correct){
      $scope.shared.showdropdown = true; // updates myVal value
   }
})
.value('myVal', {}) // register service, initializing with an object object

对于
工厂
服务
服务类型,概念相同,实现非常相似。如果您需要共享功能,而不仅仅是数据,请选择其中之一。工厂示例:

.controller('firstCtrl', function($scope, MyFactory){
    $scope.shared = MyFactory;
    ...
})
.controller('secondCtrl', function($scope, MyFactory){
    $scope.shared = MyFactory;
    ...
})
.factory('MyFactory', function(){
    var obj = {
        //showdropdown: false
    };

    obj.someFunc = function(){};

    return obj;
})
如果您需要访问父作用域之外的作用域(在本例中)–不要!!!配置代码,使您需要的作用域在当前作用域中可用,或者您可以创建一个服务来存储稍后需要的值。例如。您可能有一个用户服务。当有人登录时,您将用户对象保存到UserService,然后在需要获取用户对象的其他地方调用UserService。getCurrentUser()…不要尝试在当前继承人权限之外的某个范围内查找它

如果您正在编写指令,则可能会创建一个隔离作用域。因此,在您的指令中,将您可能需要的任何范围值作为参数传入,并将它们放置在隔离范围中

这是一种极为罕见的情况,您需要使用$parent或$rootScope,并且应该避免99.9999%的时间使用它们

如果您需要访问父作用域之外的作用域(在本例中)–不要!!!配置代码,使您需要的作用域在当前作用域中可用,或者您可以创建一个服务来存储稍后需要的值。例如。您可能有一个用户服务。当有人登录时,您将用户对象保存到UserService,然后在需要获取用户对象的其他地方调用UserService。getCurrentUser()…不要尝试在当前继承人权限之外的某个范围内查找它

如果您正在编写指令,则可能会创建一个隔离作用域。因此,在您的指令中,将您可能需要的任何范围值作为参数传入,并将它们放置在隔离范围中

这是一种极为罕见的情况,您需要使用$parent或$rootScope,并且应该避免99.9999%的时间使用它们

如果您需要访问父作用域之外的作用域(在本例中)–不要!!!配置代码,使您需要的作用域在当前作用域中可用,或者您可以创建一个服务来存储稍后需要的值。例如。您可能有一个用户服务。当有人登录时,您将用户对象保存到UserService,然后在需要获取用户对象的其他地方调用UserService。getCurrentUser()…不要尝试在当前继承人权限之外的某个范围内查找它

如果您正在编写指令,则可能会创建一个隔离作用域。因此,在您的指令中,将您可能需要的任何范围值作为参数传入,并将它们放置在隔离范围中

这是一种极为罕见的情况,您需要使用$parent或$rootScope,并且应该避免99.9999%的时间使用它们

如果您需要访问父作用域之外的作用域(在本例中)–不要!!!配置代码,使您需要的作用域在当前作用域中可用,或者您可以创建一个服务来存储稍后需要的值。例如。您可能有一个用户服务。当有人登录时,您将用户对象保存到UserService,然后在需要获取用户对象的其他地方调用UserService。getCurrentUser()…不要尝试在当前继承人权限之外的某个范围内查找它

如果您正在编写指令,则可能会创建一个隔离作用域。因此,在您的指令中,将您可能需要的任何范围值作为参数传入,并将它们放置在隔离范围中


极少数情况下,您需要使用$parent或$rootScope,并且应该避免99.9999%的时间使用它们。

或。。如果您想在应用程序中共享一些状态/方法,可以使用$rootScope

.controller('firstCtrl', function($rootScope){
    $rootScope.shared = 123;

})

.controller('secondCtrl', function($rootScope){
   console.log($rootScope)
})

或者。。如果您想在应用程序中共享一些状态/方法,可以使用$rootScope

.controller('firstCtrl', function($rootScope){
    $rootScope.shared = 123;

})

.controller('secondCtrl', function($rootScope){
   console.log($rootScope)
})

或者。。如果您想在应用程序中共享一些状态/方法,可以使用$rootScope

.controller('firstCtrl', function($rootScope){
    $rootScope.shared = 123;

})

.controller('secondCtrl', function($rootScope){
   console.log($rootScope)
})

或者。。如果您想在应用程序中共享一些状态/方法,可以使用$rootScope

.controller('firstCtrl', function($rootScope){
    $rootScope.shared = 123;

})

.controller('secondCtrl', function($rootScope){
   console.log($rootScope)
})

您是否正在重写第一个控制器,因为您将它们命名为相同的控制器?您是否只需要共享这一个值