gpt4 book ai didi

javascript - AngularJs ng-view 更改父 Controller 的值

转载 作者:行者123 更新时间:2023-11-30 16:18:36 26 4
gpt4 key购买 nike

您好,我遇到了一个与 ng-view 有关的问题。这是代码。

<header ng-controller="headCtrl" ng-show="landing.ifLandind">            
</header>

<div ng-view></div>

当加载 ng-view 时,有两个 Controller ,一个是“headCtrl”和其他负载。我想从 ng-view 中的 Controller 加载更改“landing.ifLandind”。我如何在第二个 Controller 中引用它,它将更改“headCtrl”中“landing.ifLandind”的值。在此先感谢您的帮助

最佳答案

为什么你不为控制 header 使用服务

https://docs.angularjs.org/guide/services

您可以在所有需要操作 header 的 Controller 中注入(inject)服务。

例如:

angular.module('myModule').factory('serviceHeader', function() {
var modelHeader = {
hidden: false,
hide: function() {
this.hidden = true;
},
show: function() {
this.hidden = false;
},
toggle: function() {
this.hidden = !this.hidden;
}
};
// factory function body that constructs shinyNewServiceInstance
return modelHeader;
});


angular.module('myModule').controller('FooController' ['serviceHeader', function(serviceHeader) {
...
serviceHeader.hide(); //hide header
...
}]);


angular.module('myModule').controller('HeaderController', ['$scope', 'serviceHeader', function($scope, serviceHeader) {
$scope.headerHelper = serviceHeader;
}]);



<header ng-controller="HeaderController" ng-show="!headerHelper.hidden">
</header>

<div ng-view></div>

或者你可以使用 $watch

https://docs.angularjs.org/api/ng/type/ $rootScope.作用域

希望这对您有所帮助。

问候

关于javascript - AngularJs ng-view 更改父 Controller 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35100666/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com