2016-08-05 17 views
1

はAngularJSを始めたばかりです。module.configのパラメータを取得することは可能ですか?

ルーティングを解決するためにmodule.configのパラメータを取得することは可能ですか? 以下のコードでは、my $ routeParams.idパラメータは定義されていませんです。 ...またはパラメータはmodule.controllerでのみ使用できます。このコードの何が間違っていますか?

var testApp = angular.module("testApp", ["ngRoute"]).config(function ($routeProvider, $locationProvider) { 
    $routeProvider 
     .when("/ActivityModify/:id?", { 
      templateUrl: "AngTemplates/ActivityModify.html" 
      , controller: "activityModifyController" 
      , controllerAs: "actModCtrl" 
      , resolve: {  
       ActivityModify: function ($http, $routeParams) { 

        var config = { 
         params: { "id": $routeParams.id } 
        }; 

        return $http.get("WS/ActivitiesService.asmx/GetActivityById", config) 
         .then(function (response) { 
          return response.data; 
         }) 

       } 
      } 
     }) 

@devqon: 私はHTMLでこのようなものを持っている:

<li ng-repeat="act in actAllCtrl.ActivitiesAll"> 
        <!-- drag handle --> 
        <!--<span class="handle"> 
         <i class="fa fa-ellipsis-v"></i> 
         <i class="fa fa-ellipsis-v"></i> 
        </span>--> 
        <!-- checkbox --> 
        <!--<input type="checkbox" value="">--> 
        <!-- todo text --> 
        <h5> 
         <span class="text"> 
          <!--Design a nice theme--> 
          Titolo: {{act.ActivityTitle}} 
         </span> 
        </h5><br /> 
        Stato: {{act.ActivityState}}<br /> 
        Descrizione: {{act.ActivityDescription}} 
        <!-- Emphasis label --> 
        <!--<small class="label label-danger"><i class="fa fa-clock-o"></i> 2 mins</small>--> 
        <!-- General tools such as edit or delete--> 
        <div class="tools"> 
         <a class="fa fa-edit" href="ActivityModify/{{act.id}}"></a> 
         <i class="fa fa-trash-o"></i> 
        </div> 
       </li> 

- >解決を! @Alonエイタンで述べたように、単に

に答えて、私のために働いていたものをクリアする

新しいルートのパラメータにアクセスするには$ route.current.paramsを使用することができますので、私は次のように変更:

ActivityModify: function ($http, $route) { 

        var config = { 
         params: { "id": $route.current.params.id } 
        }; 

と解決済みです。

+0

を?あなたはそこにいるイドを渡しますか? – devqon

+0

@devqon:質問を編集しました... – Falco

答えて

1

読むthis:ルート変更が正常に完了した後$ routeParamsにのみ更新されていることを

注意。つまり、を$ routeParamsに置き換えることはできません。ルート解決機能です。代わりに$ route.current.paramsを使用して新しいルートのパラメータにアクセスすることができます。

ので、代わりに$routeParams$locationを注入し、このようにパラメータを取得します(編集:動作しません、コードスニペットの後に私の編集ノートを読んで):

var params = $location.search(); 
var config = { 
    params: { "id": params.id } 
}; 

編集:をありがとうコメントの私を修正するには、実際に私自身が提供したドキュメントを書いた$route.current.params.idを使用する必要があります:|

また、あなたは簡単なhref属性を使用している、と角表現とそれを組み合わせる場合、あなたはngHrefにそれを変更する必要があります:あなたはこのルートを呼び出している

<a class="fa fa-edit" ng-href="ActivityModify/{{act.id}}"></a> 
+0

ありがとうございました、ng-hrefを修正しました。とても良い。しかし、私のために働いていなかった$ location.search()、代わりに有用な$ route.current.params、私は$ルートを注入し、私は$ route.current.params.idで私のIDを見つけた!どうも! – Falco

+1

@Falco私の修正をありがとう。私はそれが役立つかもしれない将来のユーザーのための答えにそれを加えました –

関連する問題