如何为 angular ui 视图制作通用关闭按钮?

How to make a generic close button for angular ui-views?

我需要一个可以使用 $window.history.back() 从每个视图调用的函数,无论哪个控制器控制该页面。

.run(['$rootScope', '$state', 'CommonUserModel', 'InitialiseService','$window', function($rootScope, $state, $window, commonUserModel, initialiseService) {

    $rootScope.link = function(){
        $window.history.back();
    };

所以我把这个功能放到了应用程序模块中。注入 window 对象,因为它抱怨它。但现在它也抱怨它 "Cannot read property 'back' of undefined".

我在阅读 Whosebug 时使用其他控制器的 $rootScope 调用此函数。我不得不像这样将 $rootScope 注入其他控制器。

homeViewModule.controller("simDetailsController", [ '$rootScope','$scope', 'ModalDialogService', 'CommonTagModel', '$location','$window',
                                        function($scope, modalDialogService, commonTagModel, $location, $window,$rootScope) { 
self.link = function(){
   $rootScope.link();};

你能给我一个建议吗? 请记住,我是 AngularJS 的新手,我仍然不了解这个混乱、复杂的框架。

你应该使用路线:

https://docs.angularjs.org/api/ngRoute/service/$路线

您在参数列表中注入 $window & $rootScope 的顺序与字符串数组列表不匹配。
您提到 '$window' 作为字符串数组中的第 5 个元素,而它是参数列表中的第 3 个元素。
此外,在您的代码中,'$rootScope' 是字符串数组中的第一个元素,而它是参数列表中的第 6 个元素。

将您的两个代码片段中的第一行替换为:

.run(['$rootScope', '$state', 'CommonUserModel', 'InitialiseService','$window', function($rootScope, $state, commonUserModel, initialiseService, $window) {

homeViewModule.controller("simDetailsController", [ '$rootScope','$scope', 'ModalDialogService', 'CommonTagModel', '$location','$window', function($rootScope, $scope, modalDialogService, commonTagModel, $location, $window) {