35

現在の URL からデータを抽出し、コントローラーで使用したいと考えています。たとえば、次の URL があります。

app.dev/backend/surveys/2

抽出したいビット:

app.dev/backend/ :タイプ/ :id

Angular でこの作業に役立つものはありますか?

4

6 に答える 6

53

を使用して 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 に最適なルーティング ライブラリと見なされています。

于 2014-03-28T16:15:24.160 に答える
2

例: URL/:id

var sample= app.controller('sample', function ($scope, $routeParams) {
  $scope.init = function () {
    var qa_id = $routeParams.qa_id;
  }
});
于 2015-09-02T17:00:36.257 に答える