具有多个网址属性的AngularJS路由

时间:2015-06-26 00:08:21

标签: javascript angularjs routing

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

我目前有这个有效:

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

这使我可以在jobs.php中使用_type访问$_GET

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

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

这会破坏我的申请。我确信有一种简单的方法可以解决这个问题,因为我对Javascript和Angular很新。

先谢谢。

2 个答案:

答案 0 :(得分:0)

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

ROUTER

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

CONTROLLER

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();
})

SERVICE

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;
});

答案 1 :(得分:0)

我最后调用错误的文件只是一个错误。

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

是否有效。