2013-10-14 51 views
2

我一直在尋找一種方法來顯示基於選擇的HTML內容塊。AngularJS:ng-switch不起作用

我不喜歡使用ng-include這個。我看着ng-ifng-show/hide

我想這樣做與ng-switch,在this demo它似乎工作...但不是在我的代碼,任何建議?

HTML:

<select ng-change="selectedAction(selectedType)" 
     ng-model="selectedType" 
     ng-options="type.name for type in relationshipType"> 

    <option value="">-- Select item --</option> 

</select> 

<div ng-switch on="selectedType"> 
    <span ng-switch-when="king"> 
     King Julien 
    </span> 
    <span ng-switch-when="Feet"> 
     Mort 
    </span> 
</div> 

控制器:

$scope.relationshipType = [{name:'king'},{name:'feet'}]; 
+1

您可以發佈小提琴/ Plunker? –

+0

@MaximShoustin我有問題爲角度的例子創建小提琴...它似乎從來沒有工作 –

回答

3

你寫type.name for type in relationshipType。這將選擇整個對象,例如{name:'feet'}這是不同於字符串feet。嘗試:

<div ng-switch on="selectedType.name"> 
    <span ng-switch-when="king"> 
    ... 

此外,比較是大小寫敏感的,所以:

<span ng-switch-when="feet"> 

(小寫樓爲模型中定義)

+0

是的,他們有一個名稱屬性,對此感到抱歉。但是這並不重要,因爲我通過'ng-model =「selectedType」'選擇並且可以使用''div ng-switch on =「selectedType」>' –

+0

嘗試'selectedType.name',參見編輯答案 –

+0

太棒了!謝謝Nikos –