2013-06-14 2 views
2

Мне нужно передать несколько идентификаторов в службу по маршруту. Прямо сейчас маршрут работает для одного идентификатора, но как новичок для углового JS, я не знаю, как пройти несколько идентификаторов или есть ли способ, которым я могу передать массив идентификаторов по маршруту? Я застрял и ищу некоторую помощьПередача нескольких идентификаторов по маршруту в угловых JS

текущий маршрут конфигурации

.when ('/ поиск /: идентификатор')

Ожидая

.При ('/ поиск /: идентификатор /: ID /: идентификатор ')

или .when ('/поиск/иды [] ')

Спасибо за помощь заранее.

+2

Я хотел бы предложить вам вручную соединить идентификаторы с "" или ";" и разделить их в обработчике –

ответ

0

Это то, что я придумал. Это отнюдь не идеальный или пуленепробиваемый, но это начало.

Demo

PS: Я использовал тот же контроллер для conveniance

app.config(['$routeProvider', function($routeProvider) { 
    $routeProvider 
    .when('/home:matrix', {templateUrl: 'home.html', controller: 'MainCtrl'}) 
    .when('/about:matrix', {templateUrl: 'about.html', controller: 'MainCtrl'}); 
}]); 

function extractMatrixParams(matrix) { 
    var matrixRegexp = /([^;=]+)=([^;]+)/g; 
    var matrixParams = {}; 
    var match = matrixRegexp.exec(matrix); 
    while(match) { 
    var p = matrixParams[match[1]]; 
    if(p) { 
     if(angular.isArray(p)) { 
     p.push(match[2]); 
     } 
     else { 
     matrixParams[match[1]] = [p, match[2]]; 
     } 
    } 
    else { 
     matrixParams[match[1]] = match[2]; 
    } 
    match = matrixRegexp.exec(matrix); 
    } 
    return matrixParams; 
} 

app.controller('MainCtrl', ['$scope', '$routeParams', 
function($scope, $routeParams) { 
    var matrixPrams = extractMatrixParams($routeParams.matrix); 

    $scope.ids = matrixPrams.ids; 
    $scope.myVar = matrixPrams.myVar; 
    $scope.matrixPrams = matrixPrams; 

    $scope.routeParams = $routeParams; 
}]); 
2

Используйте .when ('/ search /: id1 /: id2 /: id3') или отдельные несколько идентификаторов с запятой или другим символом.

Смежные вопросы