2

i got a very weird situation here.

At first, I wrote a simple directive.

mublABase.directive('parentSize', function() {
    return {
        link : function(scope, elem, attrs) {
            scope.parentSize = {
                width : elem.parent().width(),
                height : elem.parent().height()
            }
        }
    }
});

And this is my simplified html code

<input type="text" ng-model="parentSize.width"> //for test No.1
<div parent-size class="no-border">
    {{parentSize.width}} //for test No.2
    <span class="glyphicon glyphicon-leaf" ng-style="{'font-size':'{{parentSize.width}}px'}"></span> //this is the problem No.3
</div>

And result is broken. No.1 input and No.2 text says width is 285. But at No.3, that leaf icon's size is just default size.
(Sorry for not posting result image. I'm very noob here and i don't have any reputation)

How can it happened? And much importantly, how can i solve it?

1
  • 1
    ng-style="{ 'font-size' : parentSize.width }" Commented Dec 4, 2014 at 3:55

1 Answer 1

8

You have just got your ng-style syntax confused.

The value for each of the properties of the object in ng-style is an AngularJS expression, which means you can refer directly to scope properties.

Change it to ng-style="{'font-size': parentSize.width + 'px'}".

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.