Angularjs 如何将值传递给父控制器?
我正在用AngularJS构建一个web应用程序,在将数据从子视图控制器传递到父视图控制器时遇到了问题 在页面加载时,我从服务获取数据(例如用户名) 我想将此值传递给母版页,但当前无法将该值传递给母版页控制器。因此,我从我的服务请求数据两次(每页一次)Angularjs 如何将值传递给父控制器?,angularjs,Angularjs,我正在用AngularJS构建一个web应用程序,在将数据从子视图控制器传递到父视图控制器时遇到了问题 在页面加载时,我从服务获取数据(例如用户名) 我想将此值传递给母版页,但当前无法将该值传递给母版页控制器。因此,我从我的服务请求数据两次(每页一次) 如何与父视图共享此值?您可以使用$rootScope.yourVariable而不是$scope.yourVariable。您可以使用$rootScope.yourVariable而不是$scope.yourVariable。案例1: 使用$em
如何与父视图共享此值?您可以使用$rootScope.yourVariable而不是$scope.yourVariable。您可以使用$rootScope.yourVariable而不是$scope.yourVariable。案例1: 使用
$emit
事件将值从子控制器传递到父控制器
案例2:
使用$broadcast
事件将值从父控制器传递到子控制器
在其他控制器中,其接收方式为:
$scope.$on("Some Value", function(event, value){
console.log(value);
});
$scope.$on("Some Value", function(event, value){
console.log(value);
});
案例3:
如果控制器是同级的,则使用$rootscope
来$broadcast
事件
$rootscope.$broadcast("Some Value", $scope.someVar);
在其他控制器中,其接收方式为:
$scope.$on("Some Value", function(event, value){
console.log(value);
});
$scope.$on("Some Value", function(event, value){
console.log(value);
});
示例:
在本例中,我使用了$timeout
,它将被您的服务呼叫所取代。变量将在超时调用中提到的2秒后更新
angular
.模块(“应用程序”,[])
.controller(“ParentCtrl”,函数($scope,$timeout){
$scope.parentVar=“此变量属于ParentCtrl”;
$scope.childSharedValue=“等待ChildCtrl传递值”;
$scope.$on(“子值”,函数(事件,值){
$scope.childSharedValue=值;
});
$timeout(函数(){
$scope.$broadcast(“父值”、$scope.parentVar);
}, 2000);
})
.controller(“ChildCtrl”,函数($scope,$timeout){
$scope.childVar=“此变量属于ChildCtrl”;
$scope.parentSharedValue=“等待ParentCtrl传递值”;
$scope.$on(“父值”,函数(事件,值){
$scope.parentSharedValue=值;
});
$timeout(函数(){
$scope.$emit(“子值”,$scope.childVar);
}, 2000);
})
父值:{{parentVar}}
子共享值:{{childSharedValue}}
子值:{{childVar}}
父共享值:{parentSharedValue}}
案例1:
使用$emit
事件将值从子控制器传递到父控制器
案例2:
使用$broadcast
事件将值从父控制器传递到子控制器
在其他控制器中,其接收方式为:
$scope.$on("Some Value", function(event, value){
console.log(value);
});
$scope.$on("Some Value", function(event, value){
console.log(value);
});
案例3:
如果控制器是同级的,则使用$rootscope
来$broadcast
事件
$rootscope.$broadcast("Some Value", $scope.someVar);
在其他控制器中,其接收方式为:
$scope.$on("Some Value", function(event, value){
console.log(value);
});
$scope.$on("Some Value", function(event, value){
console.log(value);
});
示例:
在本例中,我使用了$timeout
,它将被您的服务呼叫所取代。变量将在超时调用中提到的2秒后更新
angular
.模块(“应用程序”,[])
.controller(“ParentCtrl”,函数($scope,$timeout){
$scope.parentVar=“此变量属于ParentCtrl”;
$scope.childSharedValue=“等待ChildCtrl传递值”;
$scope.$on(“子值”,函数(事件,值){
$scope.childSharedValue=值;
});
$timeout(函数(){
$scope.$broadcast(“父值”、$scope.parentVar);
}, 2000);
})
.controller(“ChildCtrl”,函数($scope,$timeout){
$scope.childVar=“此变量属于ChildCtrl”;
$scope.parentSharedValue=“等待ParentCtrl传递值”;
$scope.$on(“父值”,函数(事件,值){
$scope.parentSharedValue=值;
});
$timeout(函数(){
$scope.$emit(“子值”,$scope.childVar);
}, 2000);
})
父值:{{parentVar}}
子共享值:{{childSharedValue}}
子值:{{childVar}}
父共享值:{parentSharedValue}}
那么您尝试了什么?插入一些代码..那么您尝试了什么?插入一些代码你可以,但你不应该你可以,但你不应该