我一直在使用路由,我已經看到如何使用路由和視圖模板更新ng-view ..但是我遇到的問題是我正在進行一個REST調用,並且取決於我從響應中獲得的內容我希望用視圖模板更新DOM的一部分,但我不想涉及路由。AngularJS:使用控制器中的模板更新視圖?
有誰知道我該怎麼做?或任何例子將是巨大的
在此先感謝
我一直在使用路由,我已經看到如何使用路由和視圖模板更新ng-view ..但是我遇到的問題是我正在進行一個REST調用,並且取決於我從響應中獲得的內容我希望用視圖模板更新DOM的一部分,但我不想涉及路由。AngularJS:使用控制器中的模板更新視圖?
有誰知道我該怎麼做?或任何例子將是巨大的
在此先感謝
另一個答案。根據你在評論中的描述,這聽起來像你希望有條件地顯示DOM的一部分。
當你要有條件地顯示DOM的一部分,您有以下選擇:
使用ng-show
和ng-hide
指令。
根據從RESTful調用返回的內容,可以設置一個模型來識別需要顯示的DOM。舉個例子:
<div ng-show="status">
This text will be shown only when the status is truthy
</div>
<div ng-hide="status">
This text will be shown only when the status is false.
</div>
內部控制器,然後你可以設置status
爲true或基於REST風格的來電,並根據您希望顯示的RESTful後調用該DOM的一部分假的。
您可以使用ng-switch
指令
雖然ng-show
和ng-hide
指令會顯示你的DOM有條件的內容,這是任何人都可以簡單地打開源文件,看到兩者的內容,ng-switch
指令將加載內容僅基於哪種情況符合swtich。舉例:
<div ng-switch on="status">
<div ng-switch-when="true">
This text will be shown only when the status is truthy.
Else this is completely hidden and cannot be seen even
when looking at the source.
</div>
<div ng-switch-when="false">
This text will be shown only when the status is false.
Else this is completely hidden and cannot be seen even
when looking at the source.
</div>
</div>
當狀態爲真時顯示第一個子div,否則它根本沒有顯示。與ng-show
或ng-hide
相比,優勢在於如果未滿足該情況,DOM將不包含子元素。
謝謝...正是我在找我.. – Martin
$location.path()
可以在這裏使用。
因此,在您的父控制器中,您可以進行REST調用。一旦你有了你的數據,你就可以決定採取哪條路線。路由值進入path()
函數。例如,假設您的REST調用返回櫻桃,您需要採取/foo
路徑(其中,根據您的$routeProvider
將加載與該路由相關聯的模板)。然後,您可以編寫如下:
$location.path('/foo');
,它會加載/富路 - $routeProvider
會再取加載與該路徑相關聯的模板的照顧。
參考:$location
掛上..你提到你不想要路由,所以我下面的答案是無效的 - 爲什麼你不想路由? – callmekatootie
我正在尋找替代品,在jQuery的日子裏,我不能用模板替換DOM中的ID的內容。如果我必須使用路由,那麼很好,但我不想更改路由來更新顯示,說服務出現錯誤,例如 – Martin
如果發生錯誤,您可以在相同的視圖中顯示錯誤你現在在,不是嗎?只有在成功的情況下,你才能改變路線。 – callmekatootie