将变量从Angular中的路径传递到控制器

时间:2016-03-09 16:21:39

标签: angularjs routes ngroute angularjs-ng-route

我正在尝试使用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并将其传递给控制器​​?

由于

2 个答案:

答案 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"
     } 
  })

您甚至可以将函数附加到返回分辨率数据的状态...

https://github.com/angular-ui/ui-router/wiki#resolve