2015-08-21 4 views
0

У меня есть такой код в моей директиве ссылке:ширина элемента Изменения внутри AngularJS директивы

 scope.parentWidth = function(){ 
      return{'width':element.parent().width()} 
     } 


     scope.$watch(scope.parentWidth, function(oldValue, newValue) { 
      if (oldValue !== newValue) { 
       element.css('width', newValue); 
       console.log(element.width()); 
      } 
     }, true); 

Но в консоли я вижу, что ширина такое же, каждый раз, когда (элемент простых дела). даже когда newValue изменен. Я делаю что-то неправильно?

ответ

0
scope.$watch('parentWidth', function(oldValue, newValue) { 
      if (oldValue !== newValue) { 
       element.css('width', newValue +'px'); 
       console.log(element.width()); 
      } 
     }, true); 

При просмотре свойства рамки просто поставлять его в виде строки, в противном случае первый аргумент может быть простой функцией идемпотентная а

scope.$watch(function(){return scope.parentWidth;}, function(oldValue, newValue) { 
      if (oldValue !== newValue) { 
       element.css('width', newValue +'px'); 
       console.log(element.width()); 
      } 
     }, true); 
+0

Actualy, это Безразлично дело в случае вопрос. 'parenWidth' изменяется правильно, но ширина' element' каждый раз одинакова, поэтому 'element.css ('width', newValue);' doesn't не устанавливает ширину элемента. –

+0

Дайте ему снимок с + 'px', иногда это имеет значение при попытке установить стиль, который я предполагаю здесь, вы получаете console.log, но это просто не меняет значение? – shaunhusain

+0

Да, у меня есть журнал, но ширина такая же. –

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