我遇到了AngularJSng-view
和的问题ng-repeat
,我认为这与我处理AngularJS的方式有关scope
。我ng-repeat
用来显示数组中存在的项目的列表。而ng-repeat
scope
on之外的按钮将ng-click
更新阵列。但是有些我无法使此功能正常工作。这是我的代码示例:
<!-- home.html partial -->
<h1>Home view</h1>
<div>
<ul ng-repeat="p in posts.data">
<li>{{p.title}}</li>
</ul>
<a href="#" ng-click="updatePosts(5)">More</a>
</div>
这是绑定到此部分文件的控制器:
var app = angular.module('plunker', ['ngRoute']);
app.config(function($routeProvider){
$routeProvider
.when('/', {
controller: 'testController',
templateUrl: 'home.html'
})
.otherwise({ redirectTo: '/' });
});
app.controller('testController',
[
'$scope',
function ($scope)
{
$scope.posts = {
data : []
};
$scope.getPosts = function(count)
{
for(i =0; i<count; ++i)
{
$scope.posts.data.push({title : "Title-"+i})
}
}
$scope.updatePosts = function(count)
{
var offset = $scope.posts.data.length;
var data = [];
for(i =offset; i<offset+count; ++i)
{
data.push({title : "Title-"+i});
}
$scope.posts.data = $scope.posts.data.concat(data)
}
$scope.getPosts(5);
}
]
);
我想要的功能是当单击主页上的“更多”链接时,控制器应该获得很少的代码片段,并用更多的数据更新视图。例如,我希望单击“更多”后视图从(1)变为(2)。但是无论如何,我总是只得到(1)。
(1)
主视图
更多的
(2)
主视图
更多的
我也有Plnkr上面的例子中设置这里
**更新**我尝试了不使用相同代码的情况,ng-view
并且该代码完全按预期工作。因此,我可以确定我遇到的问题与的用法有关ng-view
。此处ng-view
显示不使用Pnkr的示例
您的代码(几乎)是正确的。
唯一的问题是<a href="#" ...
会导致重定向到默认视图,从而重新实例化控制器(并将帖子数重置为5)。
在Angular中,如果您希望<a>
元素样式化为<a>
,但默认情况下在单击时不执行任何操作,请使用href=""
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句