Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs UI路由器UI sref或$state.go根本不更改状态。。。无误_Angularjs - Fatal编程技术网

Angularjs UI路由器UI sref或$state.go根本不更改状态。。。无误

Angularjs UI路由器UI sref或$state.go根本不更改状态。。。无误,angularjs,Angularjs,更新: 注意下面的问题仍然是问题所在,但是@SurilD hint允许我看到我得到的实际错误(我不知道为什么默认情况下这是隐藏的!)。我现在越来越紧张了“未知提供程序:SearchControllerProvider如果其他人有类似问题,这确实是我将控制器连接到路由的方式。我不知道哪篇文章推荐使用resolve:对于控制器,但它不需要它。如果您的控制器是以标准方式编写的,它无论如何都会解析字符串名称。因此,状态帮助器现在看起来像 $stateProvider

更新:


注意下面的问题仍然是问题所在,但是@SurilD hint允许我看到我得到的实际错误(我不知道为什么默认情况下这是隐藏的!)。我现在越来越紧张了“未知提供程序:SearchControllerProvider如果其他人有类似问题,这确实是我将控制器连接到路由的方式。我不知道哪篇文章推荐使用resolve:对于控制器,但它不需要它。如果您的控制器是以标准方式编写的,它无论如何都会解析字符串名称。因此,状态帮助器现在看起来像

            $stateProvider
            .state('start', {
                url: '/start',
                views: {
                    "navBar": {
                        templateUrl: "/Navbar/show",
                        controller: "SearchController",
          //              resolve: { SearchController: "SearchController" }
                    },
                    "mainDiv": {
                        templateUrl: "/Search/dashboard",
                        controller: 'SearchController',
           //             resolve: { SearchController: 'SearchController' }
                    }
                }
            })
这很好用

如果有人正在搜索一个问题,您在更改状态时没有收到任何错误,但它不起作用,请遵循@Suril D的链接并添加错误处理,这将使生活变得更加轻松


一如既往,感谢所有的帮助

UI路由器不会抛出错误,所以如果有问题,您不会注意到它。您应该考虑添加一个事件处理程序,用于<代码> $STATEXEXEULL ,如下面所讨论的。如果将状态更改为不存在的状态,则出错。因此,它显然是在寻找国家。。。。但是谢谢你。。。请看一看那篇文章@Suril D我所指的错误不仅仅是因为它找不到状态,而是更一般的错误,这些错误会导致异常,比如试图访问未定义对象的属性。@Suril D!很好,这让我看到了发生的一切。。。将编辑该问题,以了解您是否可以进一步了解路由问题……已弃用
$stateChangeError
事件。现在可以使用
$transitions.onError
()
<ul class="sidebar-nav nav-pills nav-stacked" id="menu">
            <li id="searchboxmenu" class="searchboxmenu">
                <a ui-sref="showresults({ searchcriteia: ''})">
                    <span class="menuicon fa-stack fa-fw pull-left"><i class="fa fa-bars fa-3x fa-stack-1x "></i></span><span class="menutext">
                        <div ng-app="OdinSPA" ng-controller="SearchController" class="searchbox input-group">
                            <input type="text" ng-model="inputcapture" class="input-group form-control restricted" placeholder="Search...">
                            <span class="input-group-btn">
                                <button ng-click="search()" class="btn input-group" type="button">
                                    <i class="fa fa-search fa-2w"></i>
                                </button>
                            </span>
                        </div>
                    </span>
                </a>
            </li>
            <li>
                <a ui-sref="start"><span class="menuicon fa-stack fa-fw pull-left"><i class="fa fa-tags fa-3x fa-stack-1x "></i></span><span class="menutext">Orders</span> </a>
            </li>
            <li>
                <a ui-sref="guru"><span class="menuicon fa-stack fa-fw pull-left"><i class="fa fa-database fa-magic fa-3x fa-stack-1x "></i></span><span class="menutext">Guru</span> </a>
            </li>
            <li>
                <a ui-sref="reports"><span class="menuicon fa-stack fa-fw pull-left"><i class="fa fa-files-o fa-3x fa-stack-1x "></i></span><span class="menutext">Reports</span> </a>
            </li>
            <li>
                <a ui-sref="#"><span class="menuicon fa-stack fa-fw pull-left"><i class="fa fa-plus fa-3x fa-stack-1x "></i></span><span class="menutext">New</span> </a>
            </li>
        </ul>
(function () {
  angular.module('OdinSPA')
    .config(['$urlRouterProvider', '$stateProvider', '$httpProvider', '$locationProvider', function ($urlRouterProvider, $stateProvider, $httpProvider, $locationProvider) {
        $locationProvider.hashPrefix('!').html5Mode(true);
        $stateProvider
            .state('start', {
                url: '/start',
                views: {
                    "navBar": {
                        templateUrl: '/Navbar/show',
                        controller: 'SearchController',
                        resolve: { SearchController: 'SearchController' }
                    },
                    "mainDiv": {
                        templateUrl: '/Search/dashboard',
                        controller: 'SearchController',
                        resolve: { SearchController: 'SearchController' }
                    }
                }
            })
            .state('showresults', {
                url: '/Search/ListResults?searchCriteria',
                views: {
                    "navBar": {
                        templateUrl: function (params) { return '/Search/ListResults?searchCriteria=' + params.searchCriteria; },
                        controller: 'SearchController',
                        resolve: { SearchController: 'SearchController' }
                    },
                    "mainDiv": {
                        templateUrl: function (params) { return '/Search/dashboard' },
                        controller: 'SearchController',
                        resolve: {
                            SearchController: 'SearchController',
                            oneThing: function ($stateParams) {
                                console.log($stateParams); // comes through fine
                                var state = this;
                                console.log(state); // will give you a "raw" state object
                            }
                        }
                    }
                }
            })
            .state('guru', {
                url: '/guru',
                views: {
                    "navBar": {
                        templateUrl: '/Navbar/show',
                        controller: 'SearchController',
                        resolve: { SearchController: 'SearchController' }
                    },
                    "mainDiv": {
                        templateUrl: 'Search/reportEdit',
                        controller: 'SearchController',
                        resolve: { SearchController: 'SearchController' }
                    }
                }
            })
            .state('report', {
                url: '/guru',
                views: {
                    "navBar": {
                        templateUrl: '/Navbar/show',
                        controller: 'SearchController',
                        resolve: { SearchController: 'SearchController' }
                    },
                    "mainDiv": {
                        templateUrl: '/Search/dashboard',
                        controller: 'SearchController',
                        resolve: { SearchController: 'SearchController' }
                    }
                }
            })
            .state('loginRegister', {
                url: '/loginRegister?returnUrl',
                views: {
                    "navBar": {
                        templateUrl: '/Account/Login',
                        controller: 'LoginController',
                        resolve: { LoginController: 'LoginController' }
                    },
                    "mainDiv": {
                        templateUrl: '/Account/Register',
                        controller: 'RegisterController',
                        resolve: { RegisterController: 'RegisterController' }
                    }
                }
            });
        $urlRouterProvider.when('/home', 'start');
        $urlRouterProvider.otherwise('start');

        $httpProvider.interceptors.push('AuthHttpResponseInterceptor');

    }]);
})();
(function () {
angular
    .module('OdinSPA')
    .controller('SearchController', ['$scope', '$state', '$window', 'SearchService',
        function ($scope, $state, $window, SearchService) {
            $scope.searchResults = function () {
                return "bollocjs";//SearchService.searchResults();
            }
            $scope.search = function () {
                var param = {};
                $window.alert($scope.inputcapture);
                param.searchCriteria = $scope.inputcapture;
                $state.go('showresults', { searchCriteria: param.searchCriteria });
            }
            $scope.showsearch = false;
        }
    ])
})();
            $stateProvider
            .state('start', {
                url: '/start',
                views: {
                    "navBar": {
                        templateUrl: "/Navbar/show",
                        controller: "SearchController",
          //              resolve: { SearchController: "SearchController" }
                    },
                    "mainDiv": {
                        templateUrl: "/Search/dashboard",
                        controller: 'SearchController',
           //             resolve: { SearchController: 'SearchController' }
                    }
                }
            })