我正在使用AngularJS而我正在尝试使用ng-repeat
,但我无法让它发挥作用。
我的观点如下:
<a href="#" ng-click="addWidget('blaat')">Widget 1</a>
<div ng-repeat="widget in widgets">
A: {{widget.url}}
</div>
我的控制器看起来像这样:
.controller('PageController', ['$scope', function($scope) {
$scope.widgets = [];
$scope.addWidget = function($widgetUrl) {
$scope.widgets.push({
url: $widgetUrl
});
console.log($scope.widgets);
}
}])
当我按下href
链接时,它应该向widgets
数组添加一个项目,而ng-repeat
应该选择该项目。但是,在我看来,我没有看到任何内容。
但我确实看到console.log
正在向控制台打印正确的值。所以我的控制器功能正在工作。那我的ng-repeat
没有显示任何内容吗?
您可以在此处查看我的演示:http://ngrepeat.byethost7.com/#/page
这是我重现它的唯一方法。 (如果您最初看到广告,则只需刷新页面。它是免费主机)
答案 0 :(得分:3)
如果从锚点中删除href="#"
,则代码可以正常工作。哈希导致您的页面在每次单击时重新加载。如果页面导航实际上没有发生,请删除href="#"
或者考虑将锚点更改为按钮。