如何在angularjs的两个局部文件之间传递$scope数据



我如何使用angularJS在两个部分html文件中传递数据,完全奇怪无法通过它。

我有一个索引文件[好。]],我登录并到达view5 [partials/blog.html],这是写在DemoCtrl [Fine],一切工作正常,直到现在。现在,当我点击blog.html中的链接时,它会转到下一页,但不会显示我在控制器中设置的任何$scope数据。

部分文件HTML代码: {{post.postText}}

    <div class="blog-meta clearfix">
     <p class="pull-left">
         <i class="icon-user"></i> by <a href="#">{{ post.firstName }} {{ post.lastName }}</a> | <i class="icon-folder-close"></i> Category <a href="#">Food</a> | <i class="icon-calendar"></i> {{post.createdDate.millis | date:'MM/dd/yyyy @ h:mma'}}
     </p>
     <p class="pull-right"><i class="icon-comment pull"></i> <a href="#/view18#comments" data-ng-click="postDetails(post)">3 Comments</a></p>
     </div>

*控制器代码*

    app.controller('DemoCtrl', ['$scope', 'Post', 'ezfb', '$window', 'PFactory', 'PostFactory', '$location', '$timeout', function ($scope, Post, ezfb, $window, PFactory, PostFactory, $location, $timeout) {
        $scope.postDetails = function (post) {
                $scope.postdetail = {id: null};
                $scope.postdetail = post;
                $location.path('/view18');
            }
    }]);    

* app.js *

    $routeProvider.when('/view5', {templateUrl: 'nova/blog.html', controller: 'DemoCtrl'});
    $routeProvider.when('/view18', {templateUrl: 'nova/blog-item.html', controller: 'DemoCtrl18'}); 

postDetails(post)方法在DemoCtrl中使用post对象调用,并且该post对象在$scope中设置。$scope中的Postdetail变量。postDetail方法和视图是不同的模板。我可以在控制器和postDetails方法中看到控制台的数据很好,但它没有显示在模板中。

你不能在另一个控制器/模板中访问一个控制器范围内的数据集

使用一个服务并在服务中保存/设置数据,并使用DemoCtrl18中的服务来获取你在DemoCtrl中设置的数据

或者使用angular ui-router来获得更多的特性,比如父子状态和范围继承等等。

最新更新