在两个控制器之间传递动态数据

时间:2017-11-07 16:05:02

标签: javascript jquery html angularjs controller

我希望将一个项目从控制器的$ scope元素(在本例中为'header'和'content')传递给一个被重定向到的页面。

目前的设置方式如下: - 页面#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 个答案:

答案 0 :(得分:0)

如果您想使用网址参数,请使用$location.search

$rootScope.header = $location.search().header;

如果您希望以不同方式构建网址,也可以使用$routeParams

两者都需要您正确构建ng-href

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

如果您的架构允许,请考虑单页应用,您可以在config()中使用ui-sref配置状态,然后使用this.fb.login()在HTML中访问它们。< / p>