2013-01-08 16 views
0

由於某些原因,我只能在創建Ember應用程序後添加JavaScript(即所有UI已被合併)。Ember視圖 - 如何在UI呈現後操作DOM而無需修改原始源代碼?

的HTML看起來像這樣:

<div id="ember21643" class="ember-view form_field ticket_type_id has-ticket-type-field"> 
    <label for=""> 
    <script id="metamorph-249-start" type="text/x-placeholder"></script> 
    Type 
    <script id="metamorph-249-end" type="text/x-placeholder"></script> 
    </label> 
    <div id="zd_mn_385" class="zd-selectmenu zd-selectmenu-root zd-state-default"> 
     <button id="zd_mn_386" class="zd-selectmenu-base" role="button" tabindex="0" style="width: 131px; "><span class="zd-selectmenu-base-arrow zd-icon-triangle-1-s"></span><span id="zd_mn_387" class="zd-selectmenu-base-content">-</span></button> 
    </div> 
</div> 

可以很容易地使用jQuery瞄準做直接的DOM修改,但我擔心它會打破灰燼應用。

有沒有改變這種看法,例如有道:

  • 附加/添加文本到div容器
  • 改變文本的東西,而不是「類型」別人在上面例。

使用DOM檢查,這種觀點看起來像它可以訪問:

Ember.View.views.ember21643 

而且

Ember.View.views.ember21643._childViews[0] 

指向 「標籤」。所以我設置

Ember.View.views.ember21643._childViews[0]._lastNormalizedValue = "ABC" 

,但它仍然顯示在屏幕上的「類型」所以也許這不是做的方式。

請幫助。非常感謝。 (我是Ember的新手)。

+0

你是什麼意思的「沒有修改原始源代碼?」您是否正在嘗試編寫一些與正在運行的ember應用程序交互的JS代碼,但無法修改該應用程序的源代碼? –

+0

@邁克爾:是的,這正是我想要做的。除了上述,我發現Ember.View.views.ember21643._childViews [0]指向「標籤」。所以我改變了Ember.View.views.ember21643._childViews [0] ._ lastNormalizedValue =「ABC」,但它仍然在屏幕上顯示「類型」......任何想法? – RyanN

回答

0

我不確定我是否錯過了你的觀點,但是,如果我想更改一個燼視圖中的文本,我想我會使用Ember綁定。

模板

<div id="someView" type="text/x-handlebars"> 
    This sentence has a dynamic {{ end }} 
</div> 

視圖

App.someView = Ember.View.extend({ 
    end : 'conclusion', 
    templateName: 'someVIew' //not really necessary with new router to be explicit 
}) 

與結合

App.someView = Ember.View.extend({ 
    endBinding : 'contoller.end', 
    templateName: 'someVIew' //not really necessary with new router to be explicit 
}) 

觀點是否有任何的幫助? :)

+0

其實我沒有權限訪問車把模板。比方說,一個網站正在運行燼應用程序。它隨後加載我的JS腳本,在當前文本之前添加一個標題文本(當前文本從應用程序呈現,現在它在屏幕上),然後將當前文本更改爲某種描述。 – RyanN

相關問題