コントローラーの$ 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>
これは1ページアプリですか? URLはさまざまな州にナビゲートしていますか? – vinays84
@ vinays84これは単一のページアプリではありません。ただし、URLは同じドメインを共有し、同じng-appディレクティブの下にあります。 – falmatam
角度は、単一ページのアプリケーションの状態間でデータを渡すことを可能にします。リンクは新しいページリクエストであるため、URLパラメータ(例:http://uniqueURL1.com?header=Article1Header&content=SomeContent)としてデータ(ヘッダーとコンテンツ)を渡して解析する必要があります。 – vinays84