2014-01-20 51 views
2

工作,我有angular.js Web應用程序和BTN-組中有這樣的:角NG-顯示指令不會對按鈕

<div class="btn-group> 
    <button class="btn btn-default hidden-xs">....</button> 
    <button class="btn btn-default hidden-xs">....</button> 
    <button class="btn btn-default hidden-xs">....</button> 
</div> 

我想隱藏按鈕之一,並補充說:

<button ng-show="show_button">....</button> 

並在控制器

$scope.show_button = false;

不過我看按鈕。爲什麼? ng-show適用於整個btn-group,但不適用於一個按鈕。

+1

你可以添加一個jsFiddle來演示你的問題? –

回答

1

以下是適用於您的plunkr示例。它適用於我btn-group

1

我剛剛遇到了這個問題使用Angular v1.2.2。

看來,引導對.hidden-XS樣式規則:

.hidden-xs { display: block !important; } 
@media (max-width: 767px) { 
    .hidden-xs { display: none !important; } 
} 

覆蓋從角的(V1.2.2)樣式規則注入內嵌樣式表(前置,而不是附加於頭)的.ng-隱藏(大概是.ng秀)。

[ng\:cloak], [ng-cloak], [data-ng-cloak], 
[x-ng-cloak], .ng-cloak, .x-ng-cloak, 
.ng-hide { 
    display: none !important; 
} 

由於目前缺乏更好的解決方案,需要在您的文檔,樣式表或其他方式中添加角度樣式表或特定規則。 (如果您更改了Angular版本,請檢查樣式規則更改)。如果有人有更合適的解決方案,請隨時投稿。

1

bootstraps'.hidden-xs類爲可見元素添加display:block,該元素打破了角的ng-showng-hide類。

相反,使用自定義.my-hidden-xs類:

// my-style.css 
@media (max-width: 767px) { 
    .my-hidden-xs { 
     display: none !important; 
    } 
} 

// index.html 
<button class="btn btn-default my-hidden-xs" ng-show="show_button"></button> 
0

我就遇到了這個問題了。最後,我發現我在我自己的CSS文件中將div的樣式設置爲「visibility:hidden」。所以無論如何改變ng-show中的表達式,div總是隱藏起來。這意味着您自己樣式中的可見性樣式始終應用,angularjs將永遠不會更改此CSS屬性值。要使用ng-show/ng-hide你需要確保的第一件事就是不要向DOM元素添加任何顯示/隱藏樣式,只需將控件移交給angular。

0

嘗試用ng-if替換ng-show/ng-hide。 應該做的伎倆:)