gpt4 book ai didi

angularjs - Angular ui.router,从子 Controller 调用父 Controller 函数?

转载 作者:行者123 更新时间:2023-12-04 02:05:09 24 4
gpt4 key购买 nike

我将 Angular 与 ui.router 一起使用,并设置了一个嵌套 View 。父 View 有一个 div,我可以通过父 Controller 上的功能切换其可见性。我想从嵌套 View 的子 Controller 调用这个函数。我该怎么做?

最佳答案

http://plnkr.co/edit/zw5WJVhr7OKqACoJhDZw?p=preview

JS

angular
.module("myApp", [])

.controller("parent", function($scope) {
$scope.parentFunction = function() {
alert("Called a function on the parent")
};
})

.controller("child", function($scope) {
$scope.childFunction = function() {
alert("Called a function on the child")
};

$scope.parentFromChild = function() {
alert("I know this feels weird");
$scope.parentFunction();
};
})

HTML
<!DOCTYPE html>
<html>

<head>
<script data-require="angular.js@*" data-semver="1.2.14" src="http://code.angularjs.org/1.2.14/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>

<body ng-app="myApp">
<div ng-controller="parent">
<div ng-controller="child">
<a href="#" ng-click="parentFunction()">Call Parent</a>
<a href="#" ng-click="childFunction()">Call Child</a>
<a href="#" ng-click="parentFromChild()">Call Parent from Child</a>
</div>
</div>
</body>

</html>

Controller 上的作用域是原型(prototype)继承的,我相信这意味着如果你不在作用域上重新定义一个函数,如果你调用它,你会从父作用域获得相同的函数(问题是 this 然后假设使用的上下文尽管假设您不依赖此 Controller 中该 Controller 的某些效果,这是否真的是一个问题,但仍有待商榷)。

关于angularjs - Angular ui.router,从子 Controller 调用父 Controller 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22480738/

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