我正在尝试使用Angular路径来控制视图。除了设置模板和控制器之外,我想将一个变量传递给控制器,以便加载到适当的JSON内容中。
这是我目前的路线代码......
app.config(['$routeProvider',
function ($routeProvider) {
$routeProvider.
when('/forum/:forumID', {
templateUrl: '/AngularTemplates/forumListing.html',
controller: 'forumViewFullList'
}).
when('/thread/:threadID', {
templateUrl: '/AngularTemplates/thread.html',
controller: 'forumThread'
}).
otherwise({
templateUrl: 'blah',
controller: 'blah'
}
);
}]);

这是控制器,而不是HTTP请求结束时的变量......
app.controller('forumViewFullList', function ($scope, $http, $timeout) {
function loadSell() {
$http.get("/umbraco/api/openzone/GetMessages?pageSize=50&pageNumber=1&forumId="+forumID)
.then(function (response) {
/// do something
});
}
loadSell();
})
如何从路径中检索forumID并将其传递给控制器?
由于
答案 0 :(得分:2)
// Given:
// URL: http://server.com/index.html#/Chapter/1/Section/2?search=moby
// Route: /Chapter/:chapterId/Section/:sectionId
//
// Then
$routeParams ==> {chapterId:'1', sectionId:'2', search:'moby'}
请参阅$routeParams
的角度文档答案 1 :(得分:0)
我会转而使用角度ui.router,这是事实上的解决方案。比默认的角度路由要好得多。
使用ui路由器,您可以将数据附加到状态对象...
https://github.com/angular-ui/ui-router/wiki#attach-custom-data-to-state-objects
.state('contacts.list', {
templateUrl: 'contacts.list.html',
data: {
customData1: 44,
customData2: "red"
}
})
您甚至可以将函数附加到返回分辨率数据的状态...