2014-04-25 23 views
5

Umarım burada açık bir şey eksik değilim ama Angular öğrenmeye çalışıyorum ve bir yönerge oluşturmaya çalışırken bir soruna girdim.AngularJs Direktiflerini yapay bir Öğeye uygulamak için kullanabilir miyim?

Bir veri özniteliğinden ('arka plan görüntüsü') gelen URL'yi alacak ve sözde bir öğeye arka plan görüntüsü olarak uygulayacak bir Yönerge oluşturmaya çalışıyorum, ancak nasıl yapılacağını bulmakta zorlanıyorum :: öğesinden önce veya açısal bir öğeyi değiştirebilse bile. İşte

ben kurmaya çalışıyorum direktif geçerli: http://cdpn.io/cqvGH

Ben div.item arka planın uygulanacağı alabilirsiniz ama hiçbir sevinç önce :: hedef çalıştıklarında.

angular.module('testApp', [ 
]) 

angular.module('testApp') 
    .directive('backgroundImage', function(){ 
    return function(scope, element, attrs){ 
     restrict: 'A', 
     attrs.$observe('backgroundImage', function(value) { 
     // If I remove ::before it will apply image background to .item correctly. 
     element::before.css({ 
       'background-image': 'url(' + value +')' 
      }); 
     }); 
    }; 
}); 

cevap

6

Bu zor ama mümkündür: Burada

direktifi kodudur. Burada Çalışma

var style = "<style>.item:before{background-image:url("+value+")}</style>" 
angular.element("head").append(style); 

: Böyle bir şey deneyin http://codepen.io/anon/pen/Difrt

+0

Vay şu müthiş! Ben sadece bir tane daha takıldım, çünkü şimdi bir stil birden fazla öğeyi denediğimde ve stili arka plan resminin sınıf .item olarak ayarlanmış olması ile aynı anda yapamayacağımı anladım. Bunu yapabilmem için bir yol var mı, ancak her biri farklı bir arka plan resmine sahip birden çok elemanla çalışmalı mıyım? – Daimz

+0

Cherniv, benim orijinal sorgumla ilgili olarak kesinlikle doğruydu ve kodu, elemanlardan önce oluşturdu, ancak görüntüleri birden fazla öğeye uygulamak istiyorsa, arka plan görüntüsünü, yapmaya karar verdiğim bir açıklığa da uygulayabilirsiniz. (eğer birisi benim bütün kulaklarım olmadan bunu yapmak için bir yaklaşıma sahipse) diğer bağlantı bu bağlantıyı nasıl yaptığımı gösterir. http://cdpn.io/cqvGH – Daimz

+1

@Daimz bunu dinamik ve benzersiz "id" ekleyerek yapabilirsiniz, bir göz atın: http://codepen.io/anon/pen/enHxq – Cherniv

İlgili konular