在引导程序中隐藏可允许的警报

时间:2015-05-29 09:46:56

标签: twitter-bootstrap alert aurelia

我可以告诉一个可以忽略的警告只是隐藏,而不是在被解雇时将自己从dom中删除吗?

message

问题是我现在没有使用jQuery做任何事情。我需要aurelia根据[extensions] histedit = 的标志或存在来显示/隐藏它。

它只运行一次,但是一旦我解除它,它就会从DOM中删除,因此在此之后不会出现新消息。

3 个答案:

答案 0 :(得分:4)

除了if.bind之外,还有show.bindmanual),或者您可以使用hidden.bind绑定到默认的隐藏属性。

Matt表示,您也可以使用字符串插值手动添加CSS类${!message ? 'hidden': ''}

答案 1 :(得分:3)

我可能会这样做......

<div class="alert alert-success alert-dismissible fade-in ${dismissed ? 'hidden': ''}" role="alert">
    <button type="button" class="close" click.delegate="dismiss" data-dismiss="alert" aria-label="Close">
    <span aria-hidden="true">&times;</span>
    </button>
    <strong>Success!</strong> ${message}
</div>

在js中

dismiss() {
    this.dismissed = this.dismissed? true: false;
}

如果有更清洁的方法,我很乐意听到它:)

答案 2 :(得分:0)

对于显示来自ajax调用的响应消息的flash容器,我设置了close.bs.alert事件的监听器,并再次将删除的HTML添加到DOM中。

$("#flash-container").on("close.bs.alert","#flash-alert",
/* The container that will hold the #flash-alert. 
 * This setup is neccessary so that the event will be caught
 * when the HTML is added once again.
 */
    function (e) {      
        var $alert = $(this).addClass("d-none");
        /* Remove the existing text */
        $alert.find("#flash-container-text").empty();
        /* e.delegateTarget will be #flash-container */
        e.delegateTarget.innerHTML = $alert[0].outerHTML;       
});