2016-08-22 5 views
2

私のルーティング状態に奇妙な問題があります。例えば、私の状態:

.state("systemInformation", { 
    url: '/system_info/:system', 
    views: { 
    "[email protected]": { 
    controller : 'SystemInformationController', 
    templateUrl : 'pages/systemInformation.html', 
    params: { 
     system : null 
    } 
    } 
    } 
}) 

これは正常に動作し、それはページに行く、それはコントローラをロードし、それが親コントローラ(もロード)へのアクセス権を持っています。 index.htmlページにui-viewを使用していますので、他の4つのコントローラを正常にロードしているので問題にはなりません。

しかし、私はこの状態を追加する場合:

.state("systemRegistration", { 
    url: '/system_reg/:system*/:survey_page*', 
    views: { 
    "[email protected]": { 
    controller : 'SystemRegistrationController', 
    templateUrl : 'pages/systemRegistration.html', 
    params: { 
     system : null, 
     survey_page : null 
    } 
    } 
    } 
}) 

をそれがないすべては私のURLに文字列/#/system_reg/new_system/Basic%20System%20Informationをロードし、$stateProviderは何もしません。私はタイプミスを3回チェックしましたが、$routeProviderではコントローラのルーティングに問題はありませんでした。

ここに表示されないものがありますか?コントローラが動作していない(ロードされていて、他の状態と同じフォーマットなので)エラーがないし、テンプレートパスも正しいので、その理由もありません。

<li><a href="#/system_reg/new_system/Basic System Information" ng-click="clearRegSurvey()">Register a System</a></li> 

<li><a href="#/system_search">Find a System</a></li> 

注:システム検索も状態ルートを持っており、動作しますが、でもUI-SREFなし。ここ

はHTMLリンクです。これが私が混乱している理由です。また、ui-srefはsys regページでは機能しません。

+0

あなたのHTMLコードを表示すると、私はui-sref = "...."を意味します –

+0

同じ問題をplunkerで再現できますか? – varit05

+0

残念ながら、プランカを作る努力は私のために巨大なものになるでしょう。実際の例はできません。私はリンクを編集しました –

答えて

2

問題が見つかりました。 stateProviderはurlルート内のワイルドカードスター(*)を好きではないことが分かります。理由はわかりませんが、最初はうまくいきますが、ワイルドカードシンボルを使用できない複数のルートパラメータがあると思います。

url: '/system_reg/:system/:survey_page', 

そして今、それが動作します。

関連する問題