web-dev-qa-db-ja.com

Angular-コントローラのURLパスからIDを返す

私はかなりシンプルなAngularJSアプリを構築していますが、簡単にするために、ルーティングを使用せず(可能であれば)、個々のAngularページをサーバーから提供します。基本的に、Angularは「ウィジェット」のレイアウトと機能にのみ使用し、ページ間の移動には使用しないでください。

そうは言っても、現在のURLからIDを取得しようとして何時間も費やしているので、

/Tickets/:id

私は私のコントローラでやりたいすべては、その後、工場にそれを渡し、URLからIDを取得しています。 (以下は擬似コードを使用した例です)

app.controller('ticketController', ['$scope', '$route',
    function ($scope, $route, $location) {
        //Get ID out of current URL
        var currentId = someFunction().id;
        factory.callFactory(ID);
    }]);

ルートの作成も試みましたが、返されたオブジェクトはIDを取得する方法を提供していないようです。

app.config(['$routeProvider', function ($routeProvider) {
    $routeProvider
    .when('/tickets/:id',
      {
          templateUrl: '/partials/edit',
          controller: 'ticketController'
      }
    );
}]);

何が間違っているのかわかりません。

これは私には機能しないようです

これも機能していないようですが、何か間違っている可能性があります

29
Greg

$routeParams代わりに:

app.controller('ticketController', ['$scope', '$routeParams',
   function ($scope, $routeParams) {
      //Get ID out of current URL
      var currentId = $routeParams.id;
}]);
42
asgoth

ui-routerを使用している場合は、$stateParamsを試してください。

app.controller('ticketController', ['$scope', '$stateParams',
   function ($scope, $stateParams) {
      //Get ID out of current URL
      var currentId = $stateParams.id;
}]);
18
Omid-RH