AngularJS UI-Router reloadOnSearch没有按预期工作

AngularJS UI-Router reloadOnSearch not working as expected

本文关键字:工作 UI-Router reloadOnSearch AngularJS      更新时间:2023-09-26

我有一个视图,它是可能有不同的对象加载基于一个ID。这是一个get请求,控制器或状态不应该完全重新加载。我正在使用ui-router,我遇到了"reloadOnSearch"属性。将此设置为false不会根据参数重新加载控制器,它只会在状态改变时重新加载。然而,这并不奏效。下面是我的配置函数:

var MAIN_CONFIGURATION = {
Setup: function(app) {
    app.config(["$stateProvider", "$urlRouterProvider", function($stateProvider, $urlRouterProvider) {
        $stateProvider.state("myState",
            {
                url: "/mystate/:id",
                reloadOnSearch: false,
                templateUrl: "/app/Main/templates/test.html?version=0.0.0.0001",
                controller: testCtrl
            });
        $urlRouterProvider.when("", ["$state", function($state) {
            $state.go("myState");
        }]);
    }]);
    .
    .
    .
    }
};
下面是我的部分HTML:
<tr ng-repeat="item in items" ui-sref="myState({id: '{{item.ID}}'})">
                <td>{{item.FirstName}}</td>
                <td>{{item.LastName}}</td>
            </tr>

基本上一堆表行生成,当一行被点击,我希望控制器不完全重新加载。然而,它确实如此。即使按下浏览器上的后退和前进按钮,它也会被重新加载。

我不知道我做错了什么,任何帮助都会很感激。

其实我刚刚算出来了。该路由必须包含query参数。因此,我不能使用"/mystate/:id"。我应该使用"/mystate?id"。