1

Я хочу, чтобы получить строку запроса, которая является частью фактического маршрута, это реальный URL:
http://localhost:13453/Vehicle/Profile/c2db202f-9bf0-4876-851c-29964484bf7aПолучить строку запроса в угловом контроллере

Я хочу, чтобы получить последнее значение, которое приходит после профиля/

Как я могу добиться того, что в angularJS, которые я могу потом использовать, чтобы получить детали как:

.controller('VehicleProfileController', ['$scope', '$http', '$location', 
    function ($scope, $http, $location) { 
    //get the id here which I'll pass to $http call 

    $http({ 
     method: 'GET', 
     url: '/Vehicle/GetProfile' 
    }). 
    success(function (data) { 

    }); 

}]) 
+0

Какой маршрутизатор вы используете? ui-router или ngRoute? – sma

ответ

1

Если вам просто нужно прямой яваскриптом решение, вы можете использовать что-то вроде следующего без телеграфировать другие зависимости:

var loc = window.location.href; 
var id = loc.slice(loc.lastIndexOf('/'), loc.length).split('/')[1]; 

Вот быстрый JSFiddle играть.

+0

Я думаю, что он хочет использовать угловые в этом процессе. –

0

Вы можете использовать $stateProvider:

angular.module('vehicles').config(['$stateProvider', 
    function($stateProvider) { 
     $stateProvider. 
      state('vehiclesId', { 
       url: '/Vehicle/Profile/:id', 
       templateUrl: 'modules/view.client.view.html' 
      }); 

}]); 

чем использовать только в контроллере, как:

angular.module('vehicles').controller('VehiclesController', ['$stateParams', 
function($stateParams){ 

     $stateParams.id 

}]); 
+0

где я могу разместить первый фрагмент кода? – Laziale

+0

в любом месте, перед контроллером, например –

+0

@ Laziale, пожалуйста, попробуйте использовать мой код, я уверен, что сделаю эту работу! –

0

Как @sma сказал в своем комментарии, мы должны были бы знать, что маршрутизатор вы используете.

UI-маршрутизатор

В случае, если вы были с помощью ui-router, и если вы определили ваш Params в вашем штате, вы могли бы просто использовать $stateParams для того, чтобы получить его в контроллере:

app.controller('MyController', ['$stateParams', function ($stateParams) { 
    var id = $stateParams.myParamName; // the param defined in the state 
}]); 

ngRoute

В случае, если вы использовали ngRoute, вы должны использовать $routeParams в th е таким же образом:

app.controller('MyController', ['$routeParams', 
    function($routeParams) { 
     var id = $routeParams.myParamName; // the param defined in your route 
}]); 

EDIT

Я предполагаю, что вы используете ngRoute, поэтому, прежде всего, проверьте определение маршрута, он должен быть в вашей config фазе, и она должна выглядеть следующим образом:

.config(['$routeProvider', 
    function($routeProvider) { 
    $routeProvider. 
     when('/phones', { 
     templateUrl: 'partials/phone-list.html', 
     controller: 'PhoneListCtrl' 
     }). 
     when('/phones/:phoneId', { 
     templateUrl: 'partials/phone-detail.html', 
     controller: 'PhoneDetailCtrl' 
     }). 
     otherwise({ 
     redirectTo: '/phones' 
     }); 
}]); 

И затем, в контроллере, вы должны быть в состоянии получить из параметров (так называемый phoneId в данном примере), как в приведенном выше ngRoute контроллера exampl e (с $routeProvider).

Возможно, вы должны сначала взглянуть на документацию, в частности, this part.

+0

Я не уверен, где я могу проверить маршрутизатор? По умолчанию я получил, когда я установил из nuget.Угловое значение используется в приложении MVC – Laziale

+0

Тогда я предполагаю, что вы используете ngRoute по умолчанию. Как вы определили свои маршруты/состояния? – jjimenez

+0

Я не определил ничего конкретного для маршрутизаторов/состояний, они по умолчанию в mvc. Нужно ли мне где-то их проверять? Это то, что у меня есть в коде mvc. Https://i.gyazo.com/96afd1ec61127d8c748b43acc6145951.png – Laziale

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