SORU
13 Ocak 2014, PAZARTESİ


Açısal yönergesi templateUrl göre .js dosyası

Birkaç farklı yerlerde kullanılacak olan açısal yönergesi yapıyorum. Yapamam her zaman garantisi dosya yapısı uygulama yönergesi kullanılır, ama ben güç kullanıcı için directive.js directive.html (gerçek dosya adları) aynı klasör.

Sayfa directive.js olur, kendisi ile ilişkili olduğu templateUrl dikkate alır. templateUrl ayarlamak mümkün directive.js dosya ile ilişkili olduğu için mi?

Ya şu talimatı kendi içinde bir şablon eklemek için tavsiye edilir.

directive.js güncellemek yerine göreceli bir yol kullanmak mümkün olmasını tercih ederdim çok farklı şablonları farklı koşullara dayalı yükleme için olabilir diye düşünüyorum

CEVAP
14 Ocak 2014, Salı


Şu anda yürütülen komut dosyası her zaman komut dizisi son olacak, kolayca kendi yolunu bulmak:

// directive.js

var scripts = document.getElementsByTagName("script")
var currentScriptPath = scripts[scripts.length-1].src;

angular.module('app', [])
    .directive('test', function () {
        return {
            templateUrl: currentScriptPath.replace('directive.js', 'directive.html')
        };
    });

Eğer kod adı örneğin eğer birden çok komut edersen ne kadar eminseniz, bunu kullanın:

return {
    templateUrl: currentScriptPath.substring(0, currentScriptPath.lastIndexOf('/')   1) 
          'directive.html'
};

NotBir kapatma kullanıldığı durumlarda, kod currentScript doğru zamanda olarak değerlendirilir sağlamak dışında olmalıdır

// directive.js

(function(currentScriptPath){
    angular.module('app', [])
        .directive('test', function () {
            return {
                templateUrl: currentScriptPath.replace('directive.js', 'directive.html')
        };
    });
})(
    (function () {
        var scripts = document.getElementsByTagName("script");
        var currentScriptPath = scripts[scripts.length - 1].src;
        return currentScriptPath;
    })()
);

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Canal TekZoom

    Canal TekZoo

    1 NİSAN 2012
  • Caramthros

    Caramthros

    10 AĞUSTOS 2007
  • Engadget

    Engadget

    18 EYLÜL 2006