$routeProvider 从数据库路由参数
$routeProvider route params from database
我想用数据库中的数据加载填充路由参数。
比如我有
$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
你在 routeprovider 中使用 reloadsearch 属性 的地方,我在你的代码中找不到。
[reloadOnSearch=true] - {boolean=} - 当只有 $location.search() 或 $location.hash() 改变时重新加载路由。
如果选项设置为 false 并且浏览器中的 url 发生变化,则 $routeUpdate 事件将在根范围内广播。
我自己回答
解决方案是停用异步并将 return 放在 "success"
之外
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;
}
我想用数据库中的数据加载填充路由参数。
比如我有
$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
你在 routeprovider 中使用 reloadsearch 属性 的地方,我在你的代码中找不到。 [reloadOnSearch=true] - {boolean=} - 当只有 $location.search() 或 $location.hash() 改变时重新加载路由。
如果选项设置为 false 并且浏览器中的 url 发生变化,则 $routeUpdate 事件将在根范围内广播。
我自己回答
解决方案是停用异步并将 return 放在 "success"
之外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;
}