2015-04-21 7 views
0

Есть ли способ объявить url переменной с другим способом? Потому что он не работает для моего кода. Я нашел этот код отсюда. Но это работает отлично для этой скрипки - http://jsfiddle.net/jaimem/aSjwk/1/Объявление переменной

app.directive('backImg', function(){ 
    // Runs during compile 
    return { 
     // name: '', 
     // priority: 1, 
     // terminal: true, 
     // scope: {}, // {} = isolate, true = child, false/undefined = no change 
     // controller: function($scope, $element, $attrs, $transclude) {}, 
     // require: 'ngModel', // Array = multiple requires, ? = optional,^= check parent elements 
     // restrict: 'A', // E = Element, A = Attribute, C = Class, M = Comment 
     // template: '', 
     // templateUrl: '', 
     // replace: true, 
     // transclude: true, 
     // compile: function(tElement, tAttrs, function transclude(function(scope, cloneLinkingFn){ return function linking(scope, elm, attrs){}})), 
     link: function($scope, element, attrs) { 
      var url = attrs.backImg; 
      element.css({ 
       'background-image': 'url(' + url +')', 
       'background-size' : 'cover' 
      }); 
      console.log(url) 
     } 
    }; 
}); 

HTML

<div back-img='{{el.images}}.png'></div> 

ответ

1

При установке свойства CSS в значение URL, вы должны обернуть URL в кавычках.

Попробуйте это вместо этого.

element.css({ 
     'background-image': 'url("' + url +'")', 
     'background-size' : 'cover' 
}); 
+0

Это сработало. Я пробовал в течение 2 часов, чтобы найти ответ спасибо – Shaxrillo

1

Похоже, ваш url должен быть surl, поскольку вы помещаете значение backImg в surl.

Попробуйте изменить это.

var turl = element.css({ 
      'background-image': 'url(' + surl +')', 
      'background-size' : 'cover' 
     }); 
+1

Я не уверен, помог ли я вам определить неправильное имя переменной или если ваш исходный код был напечатан неправильно. Несмотря ни на что, я рад, что вы его работали. – Chris

Смежные вопросы