gpt4 book ai didi

javascript - 如何从主 Controller 发出数据以 Angular 查看 Controller ?

转载 作者:行者123 更新时间:2023-11-30 16:24:44 27 4
gpt4 key购买 nike

我想创建一个 Angular 应用程序。

我有 View 外的主 Controller 和 View 的特定 Controller 。

如何从主 Controller 向 View 的 Controller (家庭 Controller )发送数据?

我想在从主 Controller 发出数据后在 View Controller 中执行该函数。

我试过使用 - $emit$on 但在我的情况下它不起作用。

例如我的代码: https://jsfiddle.net/32hb3odk/7/

Index.html

<div ng-app="myApp">

<div class="head-part" ng-controller="MainController as main">
<h1>Header</h1>
<input ng-click="main.EmitData()" type="button" value="Emit data to child control" />
<br /> <br />
</div>

<div class="view-part">
<h2>View:
</h2>
<div ng-view></div>
</div>


<script type=text/ng-template id=home.html>
<div>{{home.title}}</div>
</script>

</div>

Javascript:

angular.module('myApp', ['ngRoute'])
.config(['$routeProvider', function ($routeProvider) {

$routeProvider
.when('/', {
controller: 'HomeController',
controllerAs: 'home',
templateUrl: 'home.html'
})
.otherwise('/');
}]);

angular.module('myApp').controller('HomeController', ['$scope',function ($scope) {
var vm = this;
vm.title = 'Homepage';
$scope.$on('EmitMain', function(){
alert("GetDataFromMainController");
});
}]);

angular.module('myApp').controller('MainController', ['$scope', function ($scope) {

var vm = this;
vm.EmitData = function(){
$scope.$emit('EmitMain');
}

}]);

最佳答案

那是因为 $emit 在树上。使用 $broadcast 代替它向下遍历树。

关于javascript - 如何从主 Controller 发出数据以 Angular 查看 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34290707/

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