2013-03-14 20 views
3

我有這樣的情況:如何添加一個HTML模板到div /指令點擊角js?

<somebutton></somebutton> 

...

app.directive("somebutton", function(){ 
    return { 
     restrict: "E", 

     scope: { 
      // not sure what i can do here 
     }, 

     template: '<button ng-click="loadTemplate()" type="button">Text</button>', 

     link: function(scope, element){ 
      scope.loadTemplate = function(){ 

       //TODO: append "home.html" template inside body directive 
      } 
     } 
    } 
}); 

...

<script type="text/ng-template" id="home.html"> 
    <div>home</div> 
</script> 

...

<div body ></div> 

這樣做可能會的其他途徑要有t他在HTML,而不是一個模板按鈕

<button ng-click="loadTemplate()" type="button">Text</button> 

那麼也許有一個具有加載模板

但林不知道如何可以做到這一點的方法loadTemplate()控制器。

混亂?是的:)

在這個問題上的任何想法?

感謝

+0

我最近開始用角和肯定做的事情是正確的困惑......我喜歡考慮角度HTML被視爲模板,以便使用其他模板工具,角不知道......期待着一些答案...... – 2013-03-14 06:43:37

回答

7

看看ngInclude的情況下,它適合你的需求。您可以將其綁定到模板url以動態更改加載的模板。

退房​​爲例以及本simple plnkr

<body> 
    <button ng-click="template='home.html'">Home</button> 
    <button ng-click="template='home2.html'">Home 2</button> 
    <div ng-include src="template"></div> 
</body> 
<script type="text/ng-template" id="home.html"> 
    <div>loaded home</div> 
</script> 
    <script type="text/ng-template" id="home2.html"> 
    <div>loaded home 2</div> 
</script> 

還要注意,大多數AngularJS應用程序有可能使用內置的路由負載根據網址適當的控制器和視圖。有關更多信息,請參見the tutorial$route上的文檔/示例。

+2

這將切換模板好吧。我正在尋找加載/追加模板到div /指令。 我的問題可能會引發人們有點過 – Patrioticcow 2013-03-14 07:22:36

+0

阿在這種情況下,也許[$編譯](http://docs.angularjs.org/api/ng.$compile)文檔會有所幫助。 – Gloopy 2013-03-14 07:28:13

+0

對我來說沒有任何事情發生 – deFreitas 2016-03-13 12:39:49