gpt4 book ai didi

javascript - Angular 重新加载嵌入式 Controller

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

我有一个使用 ng-controller 标签嵌入的 Controller ,它工作正常,但我还有一个外部 Controller 需要调用该 Controller 的一个函数:

<div ng-controller='NavigationController'>
<!-- some html-->
</div>

和 Controller

app.controller('NavigationController', function ($scope) {
$scope.downloadItems = function(value) {
//do something
}
})

现在我想从另一个 Controller 触发 downloadItems 方法。

而且我在任何地方都找不到它应该如何完成?

最佳答案

我自己只是在学习 Angular.js,但我很确定如果你想重用这样的逻辑,你应该把它放到一个服务中。 (事实上​​ ,无论如何将此类工作放入服务可能是个好主意,这样很容易与 Controller 分离以进行测试和重用。)

app.factory("NavigationService", function() {
return {
downloadItems: function(value) { /* do something */ }
}
});

app.controller("NavigationController", ["$scope", "NavigationService", function($scope, NavigationService) {
$scope.downloadItems = function(value) {
NavigationService.downloadItems(value);
}
}]);

app.controller("OtherController", ["$scope", "NavigationService", function($scope, NavigationService) {
...
NavigationService.downloadItems(value);
...
}]);

现在很容易在 Controller 外测试下载过程,也很容易模拟 downloadItems 函数来测试您的 Controller 。

关于javascript - Angular 重新加载嵌入式 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17513347/

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