現在の URL からデータを抽出し、コントローラーで使用したいと考えています。たとえば、次の URL があります。
app.dev/backend/surveys/2
抽出したいビット:
app.dev/backend/ :タイプ/ :id
Angular でこの作業に役立つものはありますか?
現在の URL からデータを抽出し、コントローラーで使用したいと考えています。たとえば、次の URL があります。
app.dev/backend/surveys/2
抽出したいビット:
app.dev/backend/ :タイプ/ :id
Angular でこの作業に役立つものはありますか?
を使用して URL からパラメーターを取得するには、ngRoute
. アプリケーションにangular-route.jsを依存関係として含める必要があることを意味します。これを行う方法の詳細については、公式の ngRoute ドキュメントを参照してください。
質問の解決策:
// You need to add 'ngRoute' as a dependency in your app
angular.module('ngApp', ['ngRoute'])
.config(function ($routeProvider, $locationProvider) {
// configure the routing rules here
$routeProvider.when('/backend/:type/:id', {
controller: 'PagesCtrl'
});
// enable HTML5mode to disable hashbang urls
$locationProvider.html5Mode(true);
})
.controller('PagesCtrl', function ($routeParams) {
console.log($routeParams.id, $routeParams.type);
});
を有効にしないと、$locationProvider.html5Mode(true);
. URL は hashbang( /#/
) を使用します。
ルーティングの詳細については、公式の angular $route API ドキュメントを参照してください。
補足:この質問は ng-Route を使用してこれを達成する方法に答えていますが、ルーティングにはui-Routerを使用することをお勧めします。より柔軟で、より多くの機能を提供し、ドキュメントが優れており、Angular に最適なルーティング ライブラリと見なされています。
例: URL/:id
var sample= app.controller('sample', function ($scope, $routeParams) {
$scope.init = function () {
var qa_id = $routeParams.qa_id;
}
});