AngularJS 具有多个 URL 属性的路由

AngularJS Routing with multiple URL attributes

在我的应用程序中,我需要使用一些路由,它从 URL 获取多个属性,以便我可以将它们传递给 PHP。

我目前有这个有效:

.when('/jobs/:type', {
        templateUrl: function(attrs){ return '/pages/jobs.php?_type=' + attrs.type; },
        controller  : 'jobsController'
    })

这让我可以通过 jobs.php 中的 $_GET 访问 _type

我正在努力解决这个问题,以便我的模板 Url 中可以有多个 attrs?这是一个例子:

.when('/page/:data1/:data2', {
        templateUrl: function(attrs){ return '/pages/page.php?data1=' + attrs.data1 + '&data2=' + attrs.data2; },
        controller  : 'mainController'
    })

这刚刚破坏了我的应用程序。我确定有一种简单的方法可以做到这一点,但我似乎无法弄清楚,因为我是 Javascript 和 Angular.

的新手

在此先致谢。

不确定为什么要将 php 文件指定为 templateUrl。这样我认为您将无法在 php 文件中使用 angularjs 功能。最好通过服务调用您的 php 文件并在前端使用 angular 操作您的数据。一种可能的方法是

路由器

.when('/page/:data1/:data2', {
    templateUrl: views/page.html,
    controller  : 'mainController'
})

控制器

app.module('myApp').controller('mainController', function(pageService, $scope){
  var init = function(){
  var data1 = '1234';
  var data2 = '4567';
 pageService.getPageData(data1, data2)
            .success(function(data){
                $scope.data = data;
             //
             })
}
init();
})

服务

app.module('myApp').controller('pageService', function($http){
    var factory = {};

    factory.getPageDetails(data1, data2){
        return $http({
            url: '/pages/page.php?data1=' + data1 + '&data2=' + data2;,
            method: 'GET'
        });
    }
return factory;
});

这只是我调用错误文件的错误。

.when('/page/:data1/:data2', {
    templateUrl: function(attrs){ return '/pages/page.php?data1=' + attrs.data1 + '&data2=' + attrs.data2; },
    controller  : 'mainController'
})

有效。