2015-02-09 17 views
7

Harici bir javascript kaynağının (Exhibit) nasıl ekleneceğini anlamaya çalışıyorum, ancak yalnızca sitede tek bir sayfa için. Görünümde veya şablonda yapılabilir mi?Ember.js, belirli bir sayfada harici komut dosyası içerir

Sadece sayfa şablonuna <script src="exhibit.js"></script> eklenmesi işe yaramadı. Tüm sitenin şablonuna eklerseniz, her şey yüklenir, ancak her sayfada yüklenir.

Sorunumun diğer tarafı, sergiye daha açık olabilir. Sayfa her yüklendiğinde komut dosyası oluşturmanın bir yolu var mı? Örnek: Sergi komut dosyasını içeren sayfayı ilk ziyaret ettiğimde, sergi dahil olmak üzere sanal uygulamayı yükler ve sayfa düzgün bir şekilde görüntülenir. Sayfadan ayrıldığımda, sayfaya geri döndüğümde sergi betiği yeniden yüklenmiyor, böylece sayfayı ilk kez ziyaret ettiğinde düzgün bir şekilde yeniden çizilmiyor.

Eğer Kor CLI ve exhibit.js ile uygulamanızı inşa ediyorsanız
+0

Uygulamanızı bileşenleri kullanarak mı yapıyorsunuz? –

cevap

14

HTTP isteklerini mininize için vendor.js dosyada exhibit.js dahil daha iyi olabilir oldukça küçük bir dosyadır.

// app/controllers/some-route-name.js  

import Ember from 'ember'; 

export default Ember.Controller.extend({ 

    loadPlugin: function() { 
    // Use run loop if you need to setup the DOM first 
    Ember.run.scheduleOnce('afterRender', this, function() { 
     Ember.$.getScript('path/to/exhibit.js'); 
    }); 
    }.on('init') 

}); 

Bu uyumsuz dosyayı yükleyecektir: Tek bir rotada exhibit.js yüklemek istiyorsanız

Ancak; şöyle this answer açıklanan polyfill yöntemi kullanabilirsiniz. getScript docs are here - geri aramaları da kullanabilirsiniz.

Yüklemeden önce DOM kurulumuna ihtiyacınız yoksa, çalıştırma döngüsünü kaldırabilirsiniz. Bu betiğin denetleyicinin init olayına yüklenmesi, kullanıcının rotaya her gittiğinde yeniden yüklenmesini önleyecektir. do komutunu, her zaman getScript görünümüne didInsertElement olayına taşıyabiliyorsunuz.

+0

Teşekkürler! "DidInsertElement" dosyasına getScript koydum ve mükemmel çalışıyor. – Jared

İlgili konular