所以我有两个元素在 ng-repeat 中呈现,当我点击一个执行切换的按钮时,短暂的时间会显示两个元素。
我尝试了各种各样的东西,ngIf,ngShow,ngSwitch和ngCloak,似乎没什么用。
以下是代码示例:
<div data-ng-repeat="item in view.myModel.items">
<div class="row">
<a ng-hide="item.link" class="btn ng-cloak"
ng-click="view.getLink($index)">Get Link</a>
<a ng-show="item.link" class="btn ng-cloak"
data-ng-href="{{item.link}}" download>Download</a>
</div>
</div>
所以这是问题所在,在加载时我只看到了“获取链接”#39;按钮很好。
只要我点击它,它就会进行一次http呼叫并设置&#39; items.link&#39;值,这是问题发生的地方。那时两个按钮一起显示。
然后正确地只显示下载按钮。
如果你感兴趣的话,这是http电话:
/**
* Get a link
*/
function getLink(idx) {
Linker
.getLink(idx)
.then(onGotLink);
function onGotLink(link) {
myModel.items[idx].link = link.url;
}
}
有什么想法吗?
答案 0 :(得分:2)
对于指出它的用户1620220的信任。问题是ng-animate正在运行,导致ng-hide-animate触发导致轻微的闪烁。
您可以关闭ng-animate,或使用CSS来转换&#39;转换&#39;如果你只想部分禁用它,那就是。