我如何使用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来获得更多的特性,比如父子状态和范围继承等等。