AngularJS UI-Router reloadOnSearch无法按预期工作

时间:2016-09-11 02:26:13

标签: javascript angularjs angular-ui-router

我有一个视图,可以根据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>

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

我不知道我做错了什么,任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

实际上我只是想通了。路由必须包含“查询”参数。因此我不能使用“/ mystate /:id”。我应该使用“/ mystate?id”。