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

  • KliptOut KwazeeKilla

    KliptOut Kwa

    24 ŞUBAT 2010
  • REK Roth Productions

    REK Roth Pro

    8 Ocak 2011
  • Simon Hayter

    Simon Hayter

    20 HAZİRAN 2010