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