【发布时间】:2015-12-22 00:26:54
【问题描述】:
我有一个在单击按钮时弹出的模式。模态的内容是项目列表。此列表存储在控制器中,并由来自 GET 请求的响应的一些数据填充。
每当我重复打开模式时,隐式调用列表的更新时,我会立即看到列表的多个副本 - 每次单击大约一个副本。然后显示的列表会自行解析为列表中实际存储的内容。
这可能是控制器或 html 的问题,还是 ngRepeat 的某种副作用?
以下是html文件中的sn-ps:
<li ng-repeat="itemin vm.items">{{item.name}}</li>
<a href="#" onclick="togglePanel('Panel')" ng-click= "vm.getItems()">View Items</a>
从控制器:
getItems(): angular.IPromise<core.IItem> {
var self: Controller = this;
return this.itemDataService.getItems()
.then(function(response: any): angular.IPromise<core.IItem> {
self.items = response.data;
return response;
},
function(response: any): angular.IPromise<core.IItem> {
self.items = [];
return response;
});
}
如果您需要查看更多代码,请询问。
编辑:额外代码... onClick 被调用:
function toggleSavedSearchPanel(id)
{
var e = document.getElementById(id);
if (e.style.display == 'block' || e.style.display=='')
{
e.style.display = 'none';
}
else
{
e.style.display = 'block';
e.focus();
}
}
【问题讨论】:
-
问题出在我的 CSS 代码上;有一个过渡:列表的 css 中有 0.2 秒。删除它解决了我所有的问题。
标签: angularjs angularjs-directive get typescript ng-repeat