2017-11-07 15 views
0

コントローラーの$ scope要素(この場合は 'header'と 'content')の項目をクリック時にリダイレクトされるページに渡そうとしています。2つのコントローラ間でダイナミックデータを渡す

それは、現在設定されている方法は以下の通りである: - ページ#1の負荷masterArray、すべての要素 を表示する - ユーザーがクリックしたとき - ユーザーが、その後「のhref」属性 とリンクされているボタンをクリックしますhrefボタンを押すと、新しいページ(Page#2)が表示されます。

私の質問:「ヘッダー」と「コンテンツ」をページ2に渡して、関連するヘッダー/コンテンツ(クリックされたリンクに基づいて)のみがマッピングされて表示されるようにするにはどうすればよいですか?

以下のコードは、動的に表示されているすべてのデータとメインページのためのものである

app.controller("SomeController", function ($scope, $window) { 
$scope.masterArray = [{ 
    title: "MainTitle", 
    segments: [{ 
     title: "SubTitle", 
     articles: [{ 
      header: "Article1Header", 
      content: "SomeContent", 
      href: "http://uniqueURL1.com" 
     }, { 
      header: "Article2Header", 
      content: "SomeContent", 
      href: "http://uniqueURL2.com" 
     }, { 
      header: "Article3Header", 
      content: "SomeContent", 
      href: "http://uniqueURL3.com" 
     }, { 
      header: "Article4Header", 
      content: "SomeContent", 
      href: "http://uniqueURL4.com" 
     }] 
    } 

    }] 
}]; 

ページ#1

<div ng-controller="SomeController"> 
<div class="section"> 
<div class="segment" ng-repeat="m in shownArray"> 
    <div ng-repeat="s in m.segments" ng-if="m.segments"> 
     <h4 ng-show="filtered.length">{{s.title}} ({{filtered.length}})</h4> 
     <div template="basic" ng-repeat="a in s.articles|articleFilter:query as filtered" is-open="a.isOpen"> 
      <h2 ng-bind-html="a.header | highlight:query"></h2> 
      <div> 
       <p ng-bind-html="a.content | highlight:query"></p> 
       <a class="button button-primary" ng-href="{{a.href}}">View</a> 
      </div> 
     </div> 
    </div> 

</div> 
</div> 
</div> 

ページ#2(望ましい結果)

<div> 
<h2>//DISPLAYS ASSOCIATED 'header'</h2> 
<h3>//DISPLAYS ASSOCIATED 'content'</h3> 
</div> 
+0

これは1ページアプリですか? URLはさまざまな州にナビゲートしていますか? – vinays84

+0

@ vinays84これは単一のページアプリではありません。ただし、URLは同じドメインを共有し、同じng-appディレクティブの下にあります。 – falmatam

+0

角度は、単一ページのアプリケーションの状態間でデータを渡すことを可能にします。リンクは新しいページリクエストであるため、URLパラメータ(例:http://uniqueURL1.com?header=Article1Header&content=SomeContent)としてデータ(ヘッダーとコンテンツ)を渡して解析する必要があります。 – vinays84

答えて

0

URLパラメータを使用する場合は、$location.search

を使用してください
$rootScope.header = $location.search().header; 

URLを別の方法で作成したい場合は、$routeParamsを使用することもできます。

の両方が適切にng-hrefを構築するためにあなたを必要とする:

ng-href="{{a.href+'?header='+a.header+'&content='+a.content}}" 

あなたのアーキテクチャがそれを可能にする場合は、それらにアクセスするui-srefを使用して、あなたのconfig()にあなたが$stateProviderと状態を設定したいした単一のページのアプリを、考えますあなたのHTMLに。

+0

あなたの2番目の提案は私の目的のために働いていました。ありがとう! – falmatam

関連する問題