2012-05-03 39 views
14

Handlebars模板中沒有內聯腳本嗎?手柄模板中的inline javascript

<script type="text/x-handlebars"> 
    I'm a row of type "foo" 
    <script type="text/javascript">alert('hi');</script> 
</script> 

當上面的模板呈現時,內聯腳本被刪除。

我想要做的是在頁面上包含disqus小部件。該小部件基本上是一些markup + disqus腳本。

小部件將被包含在我的應用程序的子視圖中。子視圖默認不可見,但按照我的Ember應用程序代碼中的某些邏輯顯示。

回答

10

你必須來包裝控件在自定義Ember.View處理實例,並將其添加到DOM,在包裝視圖的didInsertElement。 Ember期望,特別是在句柄模板內部,可以完全控制DOM操作,並且它可以通過組合handlebars magic和Ember.View創建來實現。一旦你定義你的customview:

MyApp.DisqusView = Em.View.extend({ 
    didInsertElement: function() { 
     // create widget and append it to this.$() 
    } 
}); 

您可以在車把模板中使用它:

{{view MyApp.DisqusView}} 

你的觀點應該添加腳本標記的,出於安全原因,而是應該執行任何JS直接插入小部件。

+0

+1和AFAIK,把手的想法是有一個邏輯較少的模板 – louiscoquio

+0

@louiscoquio我的把手模板沒有邏輯。 JS中的邏輯是什麼時候顯示模板。模板內部只有一個腳本標籤。 – Rajat

+0

@Rajat我犯了一個錯誤,所以,我的道歉。 – louiscoquio