【问题标题】:$routeProvider route params from database$routeProvider 来自数据库的路由参数
【发布时间】:2017-12-13 11:34:08
【问题描述】:

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

例如,我有

$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

【问题讨论】:

标签: angularjs ngroute


【解决方案1】:

您在 routeprovider 中使用 reloadsearch 属性的位置,我在您的代码中找不到。 [reloadOnSearch=true] - {boolean=} - 当只有 $location.search() 或 $location.hash() 改变时重新加载路由。

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

【讨论】:

  • 我在代码的任何部分都没有使用“reloadOnSearch”
  • 使用 reloadOnSearch:false 选项
【解决方案2】:

我自己回答

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

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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-28
    • 2013-04-08
    • 1970-01-01
    相关资源
    最近更新 更多