如何使用angularJS在两个部分html文件中传递数据,完全不太可能无法通过它。
我有一个索引文件[罚款。],我登录并访问以DemoCtrl [Fine]编写的view5 [partials / blog.html],到目前为止一切正常。现在,当我点击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'});
在带有post对象的DemoCtrl中调用的postDetails(post)方法,并且在$ scope.postDetail方法中的$ scope.postdetail变量中设置了post对象,并且视图是不同的模板。我可以在控制器和postDetails方法中看到控制台中的数据正常,但它不会显示在模板中。
答案 0 :(得分:1)
您无法在另一个控制器/模板中的一个控制器中访问数据集范围。
使用服务并保留/设置服务中的数据,并使用DemoCtrl18中的服务获取您在DemoCtrl中设置的数据
或者使用angaular ui-router获得更多功能,如父子状态和范围继承等。