0
我的目標相對簡單。我希望能夠在<ul>
列表中顯示一個滾動條內的按鈕。當滾動條變得可見時更新ng-show
要做到這一點,我添加下面的jQuery插件,以檢查是否有我的名單上的滾動條:
(function($) {
$.fn.hasScrollBar = function() {
return this.get(0).scrollWidth > this.width();
}
})(jQuery);
此代碼工作得很好,所以我把調用這個hasScrollBar()
功能的方法我的控制器這樣的:
$scope.hasGoTabButtonToBeDisplayed = function() {
return $("#tabset>ul").hasScrollBar();
}
,而且我用ng-show
指令,以顯示我的按鈕只有在有我的名單上的滾動條:
<button type="button"
class="btn btn-xs"
style="float:left;"
ng-show="hasGoTabButtonToBeDisplayed()"
ng-click="onGoLeftTabButtonClicked()">
<span class="glyphicon glyphicon-triangle-left" aria-hidden="true"></span>
</button>
當我加載頁面時,如果我的列表中有一個滾動條,但是如果我調整我的窗口的大小和滾動條的顯示,按鈕的顯示不會改變,這意味着我的hasGoTabButtonToBeDisplayed()
方法是不叫。我明白爲什麼不調用這個方法,因爲Angular無法檢測到這個變化,但我不知道該怎麼做。
也許我有一個錯誤的邏輯來解決這樣的問題?