AngularJS - ngShow / ngSwitch / ngIf - 两个元素闪烁

时间:2015-09-27 15:05:39

标签: javascript angularjs

所以我有两个元素在 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;
    }
}

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

对于指出它的用户1620220的信任。问题是ng-animate正在运行,导致ng-hide-animate触发导致轻微的闪烁。

您可以关闭ng-animate,或使用CSS来转换&#39;转换&#39;如果你只想部分禁用它,那就是。