AngularJs在app.config中的回调中配置路由
AngularJs configure route in callback inside app.config
我正在开发一个应用程序,我需要该应用程序,路由必须加载动态模板,例如:
当我点击/myclient/#时/详细信息我需要从"myclient"目录加载模板。
我有一个json API,它为每个客户端响应这些配置。
[{
"path": "/",
"templateUrl": "template/loja1/index.html",
"controller": "homeController"
}, {
"path": "/detail",
"templateUrl": "template/loja1/detail.html",
"controller": "homeController"
}];
因此,我在尝试将angular.config设置为API响应的回调时遇到了问题。我还试着在回调后设置路由。
我认为这个解决方案是合适的。我做错了什么?
var app = angular.module("myApp", ['ngRoute']);
app.config(function($routeProvider, $locationProvider, $provide) {
$locationProvider.hashPrefix('!');
var API = $provide.factory('API', function($http) {
return {
getStore: function() {
return $http.get("http://localhost:8080/resources/route");
}
};
});
var runRote = function(routes) {
routes.forEach(function(route) {
$routeProvider.when(route.path, {
templateUrl: route.templateUrl,
controller: route.controller
});
});
$routeProvider.otherwise({
redirectTo: "templates/404.html"
});
};
var getRoutes = function(runRote) {
API.$get().getStore().success(function(data, status) {
runRote(JSON.stringify(data));
}).error(function(data, status) {
runRote();
});
};
getRoutes(runRote);
});
Drica!
使用@dfsq发送的这个实现,它会工作,但这部分
app.controller('homeController', function($route) {
window.route = $route;
});
如果使用ui路由,则不需要。否则,这个问题在/route中,您可以使用localStorage来保存您的json信息并重新加载页面。在我的测试中,它起了作用。
当您将数组传递到runRote
函数时,不必字符串路由数组。在它中,您对传递的数据使用forEach
方法,这是一个数组方法,而不是字符串。正确的代码应该是:
var getRoutes = function(runRote) {
API.$get().getStore().success(function(data, status) {
runRote(data);
}).error(function(data, status) {
runRote();
});
};
此外,其他路线的配置应为
redirectTo: "templates/404.html"
相关文章:
- AngularJS:我可以跳过函数参数回调吗
- 要求未定义JS回调参数
- MeteorJS:在带有回调的vzaar api上正确使用wrapAsync
- 自引用回调
- 测试Angular Service解决错误回调中的promise
- 如何将一个JavaScript函数回调为多个函数
- JavaScript回调函数
- 用于回调的javascript参数
- 将json回调数据转换为日期
- 承诺在非节点式回调上使用Bluebird
- 如何在回调函数中执行流
- 回调函数中传递参数的困难(Google Map API Markers)
- AngularJs在app.config中的回调中配置路由
- Angularjs:配置使用提供程序中服务的回调的好方法
- 这些回调如何适应配置对象
- RequireJS:在指定配置中存在路径别名的绝对路径名时不触发require回调
- 无法在回调时配置选项(jQuery插件)
- 延迟回调中的异常:错误:路由器上没有配置uiManager
- Webpack多配置回调错误和统计
- 尝试配置YouTube订阅按钮回调