2015-08-01 3 views
3

У меня есть этот код ниже, что я думал, будет работать. но это неИзменить высоту элемента угловойJS

'use strict'; 

angular.module('remnantApp') 
    .directive('bigDiv', function ($timeout) { 
    return { 
     restrict: 'E', 
     scope: {}, 
     template: '<div style="height: {{height}}, background-color: black;">Hello</div>', 
     link: function(scope, element, attrs) { 
     scope.height = angular.element(window).height(); 
     } 
    }; 
    }); 

Пожалуйста, помогите

+0

Вы думали, что будет работать. но это не так? ОК. Скажи это. Но приложите больше объяснений. Что в настоящее время не работает? У вас есть ошибка? Помогите нам помочь вам. –

+0

извините, да. У меня не было никакой ошибки. Тем не менее, я думал, что высота элемента div будет меняться по мере того, как эта директива загружается. но это не так. –

+0

Хорошо, так. Пожалуйста, разместите свою полную разметку HTML. –

ответ

3

templateUrl должны быть template как вы используете шаблон рядный, также стиль Dynamica можно оказывать с помощью ng-style то шаблон становится как ng-style="{height: height + \'px\' }"

Markup

<big-div><big-div> 

Код

angular.module('remnantApp',[]) 
    .directive('bigDiv', function ($timeout,$window) { 
    return { 
     restrict: 'E', 
     scope: {}, 
     template: '<div class="big-div" ng-style="{height: height + \'px\' }" style="background-color: black;">Hello</div>', 
     link: function(scope, element, attrs) { 
     scope.height = $window.innerHeight; //without jQuery 
     //other alternative would be 
     //element.find('.big-div').css(height, scope.height); 
     } 
    }; 
}); 

Working Plunkr

+0

Извините, да, я это исправил. он все еще не работает. это была не оригинальная проблема –

+0

@ChristianSakai, тогда вы могли бы объяснить, в чем проблема? –

+0

извините. Да. Я попытался изменить высоту элемента с помощью области, но это не изменилось. –

2

Я хотел бы попробовать использовать ng-style при использовании динамического стиля атрибуты:

'use strict'; 

angular.module('remnantApp') 
    .directive('bigDiv', function ($timeout) { 
    return { 
     restrict: 'E', 
     scope: {}, 
     template: '<div ng-style="styles">Hello</div>', 
     link: function(scope, element, attrs) { 
     scope.styles = { 
      height: angular.element(window).height(), 
      'background-color': 'black' 
     }; 
     } 
    }; 
    }); 
+0

Да, это тоже работает. Я не знал, что в угловом стиле есть ng-стиль. Благодаря! –