2016-07-03 6 views
1

私のMVC 5アプリケーションでは、いくつかのAngularJSを使いたいと思います。今、私はプロジェクトカードを持っています。このカードには、次のURLで電話することができます。angularjsのUrlパラメータを取得します

http://localhost/Project/Card/1 

このカードでは、私にはprojectTasksのリストがあります。 id = 1パラメータに基づいて、AngularJSにこのリストを表示させたいが、idパラメータを取得する方法はわからない。私はngRouteを見ていましたが、私は自分のProjectTaskControllerに動的URLを作成したいだけではルートを設定したくありません。

私がこれまで持っている:

projectApp.js

(function() { 
    var app = angular.module("projectApp", ["ngRoute"] 
     .config(function ($routeProvider, $locationProvider) { 
      //configure the routing rules here 
      $routeProvider.when('/Card/:id', { 
       controller: 'ProjectTaskCtrl' 
      }); 

      // enable HTML5mode to disable hashbang urls 
      $locationProvider.html5Mode(true); 
     }) 
}()); 

ProjectTask.js

(function (app) { 
    var projectTaskCtrl = function ($scope, $routeParams) { 

    alert($routeParams.id); // message: undefined 
}; 

app.controller("ProjectTaskCtrl", projectTaskCtrl); 
}(angular.module("projectApp"))); 
+0

localhostが唯一のコンピュータに存在しています。 –

+0

@ OffirPe'er私は知っています。これはURLの単なる例です。なぜ私はあなたがその質問をしたのか分かりません。 – kwv84

+0

あなたのルートが '/ Show/1'だった場合、これはうまくいくでしょう。間違ったルートセグメントを示すコードですか、または間違ったルートを示すサンプルURLですか?コードとサンプルが一致しない場合、コードの問題をトラブルシューティングするのは難しいです。 – Claies

答えて

1

私はNG-INITを使用して、それを解決してきました:

で私のMVC5ビュー(Show.cshtml)を追加しました:

私ProjectTaskCtrl.jsで

<div id="projectTasks" ng-app="ProjectApp"> 
    <div ng-controller="ProjectTaskCtrl"> 
     <input type="hidden" id="projectId" ng-model="projectId" ng-init="[email protected]"/> 
     <!-- some more code --> 
    </div> 
</div> 

(function (app) { 
    var projectTaskCtrl = function ($scope) { 

    $scope.$watch("projectId", function(){ 
     // I can now use projectId in whatever I want: 
     alert($scope.projectId); 
    }); 
}; 

app.controller("ProjectTaskCtrl", projectTaskCtrl); 
}(angular.module("projectApp"))); 
関連する問題