【发布时间】:2015-03-24 02:23:15
【问题描述】:
如果 isBannerVisible 为真,我有此代码来显示警报横幅。但是,如果该值为 false,则横幅仍会呈现几秒钟,然后消失。我不知道如何防止这种情况发生。我尝试在它之前添加<div style="display:none" data-bind="visible: true">,但它没有显示在 isBannerVisible = true 或 false 上。
<div data-requisite="mybiz.businesscenter.infobannercomponent" data-bind="if: shouldInitialize">
<div class="alert alert-info alert-dismissable" data-bind="visible: isBannerVisible()">
<button type="button" class="close" data-dismiss="alert" data-bind="click: bannerClose"
aria-hidden="true">
×
</button>
JS.....
var InfoBannerViewModel = function ($el) {
var self = this;
.....
self.isBannerVisible = ko.observable((!dataStore.getItem('isBannerVisible') ? true : dataStore.getItem('isBannerVisible')));
.......
};
var _init = function ($el) {
var infoBannerViewModel = new InfoBannerViewModel($el);
app.bind(infoBannerViewModel, $el);
};
return {
init: _init
};
});
【问题讨论】:
-
好吧,如果您设置
visible,它将呈现整个内容,但它只是隐藏它。你应该在你的块顶部使用container-less IF,这应该适合你的场景。欢呼
标签: html knockout.js javascript-databinding