$ routeProvider从数据库路由params

时间:2017-12-13 11:34:09

标签: angularjs ngroute

我想用数据库中的数据加载路径参数。

例如,我有

$routeProvider.when('/:param1/:param2', loadParams())

和loadParams函数

function loadParams() {
    var data = {
        path: window.location.pathname
    };
    $.ajax({
        type: 'POST',
        url: 'getRouteParams',
        data: data,
        success: function(data, status) {
            var attributes = {};
            attributes.controller = data.controller;
            attributes.templateUrl = data.templateUrl;
            return attributes;
        }
    });
}

但是这个函数给我一个错误

Cannot read property 'reloadOnSearch' of undefined

2 个答案:

答案 0 :(得分:0)

你在routeprovider中使用reloadsearch属性,我在你的代码中找不到。 [reloadOnSearch = true] - {boolean =} - 仅当$ location.search()或$ location.hash()发生更改时重新加载路由。

如果该选项设置为false并且浏览器中的url发生更改,则会在根范围内广播$ routeUpdate事件。

答案 1 :(得分:0)

我自己回答

解决方案是停用异步并将退货退出“成功”

function loadParams() {
    var data = {
        path: window.location.pathname
    };
    var attributes = {};
    $.ajax({
        type: 'POST',
        url: 'getRouteParams',
        data: data,
        async: false,
        success: function(data, status) {
            attributes.controller = data.controller;
            attributes.templateUrl = data.templateUrl;
        }
    });
    return attributes;
}