我已經嘗試了幾個小時的各種事情,無法使其工作。基本上,我有一個選項卡窗格,我只希望在適當的選項卡處於活動狀態時加載每個窗格的內容。選項卡式窗格處於durandal視圖。使用Durandal/Knockout的Bootstrap「show.bs.tab」事件
我首先嚐試了一個正常的點擊事件,並且工作正常。問題在於,有時在導航回到該屏幕時,上次選擇的選項卡仍處於選中狀態。因此沒有發生點擊事件。因此,我認爲我只是使用bootstrap中的內置觸發事件 - 「show.bs.tab」來找出標籤何時變爲「活動」。
不幸的是沒有選擇組合或任何我嘗試過的工作。我知道觸發器是由bootstrap觸發的,因爲我已經調試過了。然而,這個事件並沒有到達我在我的視圖模型的「compositionComplete」回調中放置的事件監聽器 - 而且我知道durandal也在那裏,因爲我也調試過了。
奇怪的是,當我的聽衆代碼放置:
$('a[data-toggle="tab"]').on('show.bs.tab', function (e) {
console.log('EVENT HAS ARRIVED! ', e);
});
直接進入引導文件剛好高於實際觸發被炒魷魚,它的工作原理。因此,必須有一些東西阻止事件在杜倫式視圖模型中到達。它是杜蘭迪爾還是淘汰賽?有沒有我錯過的東西 - 我需要使用杜蘭達或淘汰賽進行配置才能使其發揮作用?
我並不認爲HTML是問題,但只是爲了完整起見,我會後,太多:
<div class="col-md-10" id="view-details">
<form class="form-horizontal" role="form" data-observe="true">
<ul class="nav nav-tabs">
<li class="active"><a data-target="#tab1" data-toggle="tab">Tab1</a></li>
<li><a data-target="#tab2" data-toggle="tab">Tab2</a></li>
<li><a data-target="#tab3" data-toggle="tab">Tab3</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tab1" data-bind="compose:{ model: 'path/to/tabs/tab1', activationData: $root.someId}"></div>
<div class="tab-pane" id="tab2" data-bind="compose:{ model: 'path/to/tabs/tab2', activationData: $root.someId}"></div>
<div class="tab-pane" id="tab3" data-bind="compose:{ model: 'path/to/tabs/tab3', activationData: $root.someId}"></div>
</div>
</form>
任何幫助,將不勝感激。
感謝, 邁克爾
你能解決這個問題嗎?我有同樣的問題,還沒有找到答案... –
看起來像你現在找到了答案:)。我會試試看,謝謝! – michaeldd