How to set color in div element using property binding with Angular 4
I have the follow object
public countries= [
{code: 'AE' , country_name: 'United Arab Emirates', color: '#eea638'},
{code: 'AF' , country_name: 'Afghanistan', color: '#eea638'},
{code: 'AL' , country_name: 'Albania', color: '#eea638'},
{code: 'AM' , country_name: 'Armenia', color: '#eea638'},
{code: 'US' , country_name: 'United State',color: '#eea638'},
{code: 'AR' , country_name: 'Argentina', color: '#eea638'},
{code: 'AT', country_name: 'Austria', color: '#eea638'},
{code: 'AU', country_name: 'Australia', color: '#eea638'}
]
So I would like to set the div color dinamically based in this object list. I tried to do this:
<div *ngFor="let country of countries">
<p class="m-b-10">{{country.country_name}}
<span class="f-right">{{country.code}}</span>
</p>
<div class="progress">
<div class="progress-bar" ng-style="{'background-color': country.color}" [style.width]="'75%'"></div>
</div>
But it's not working. Could you please help me?
angular property-binding
add a comment |
I have the follow object
public countries= [
{code: 'AE' , country_name: 'United Arab Emirates', color: '#eea638'},
{code: 'AF' , country_name: 'Afghanistan', color: '#eea638'},
{code: 'AL' , country_name: 'Albania', color: '#eea638'},
{code: 'AM' , country_name: 'Armenia', color: '#eea638'},
{code: 'US' , country_name: 'United State',color: '#eea638'},
{code: 'AR' , country_name: 'Argentina', color: '#eea638'},
{code: 'AT', country_name: 'Austria', color: '#eea638'},
{code: 'AU', country_name: 'Australia', color: '#eea638'}
]
So I would like to set the div color dinamically based in this object list. I tried to do this:
<div *ngFor="let country of countries">
<p class="m-b-10">{{country.country_name}}
<span class="f-right">{{country.code}}</span>
</p>
<div class="progress">
<div class="progress-bar" ng-style="{'background-color': country.color}" [style.width]="'75%'"></div>
</div>
But it's not working. Could you please help me?
angular property-binding
add a comment |
I have the follow object
public countries= [
{code: 'AE' , country_name: 'United Arab Emirates', color: '#eea638'},
{code: 'AF' , country_name: 'Afghanistan', color: '#eea638'},
{code: 'AL' , country_name: 'Albania', color: '#eea638'},
{code: 'AM' , country_name: 'Armenia', color: '#eea638'},
{code: 'US' , country_name: 'United State',color: '#eea638'},
{code: 'AR' , country_name: 'Argentina', color: '#eea638'},
{code: 'AT', country_name: 'Austria', color: '#eea638'},
{code: 'AU', country_name: 'Australia', color: '#eea638'}
]
So I would like to set the div color dinamically based in this object list. I tried to do this:
<div *ngFor="let country of countries">
<p class="m-b-10">{{country.country_name}}
<span class="f-right">{{country.code}}</span>
</p>
<div class="progress">
<div class="progress-bar" ng-style="{'background-color': country.color}" [style.width]="'75%'"></div>
</div>
But it's not working. Could you please help me?
angular property-binding
I have the follow object
public countries= [
{code: 'AE' , country_name: 'United Arab Emirates', color: '#eea638'},
{code: 'AF' , country_name: 'Afghanistan', color: '#eea638'},
{code: 'AL' , country_name: 'Albania', color: '#eea638'},
{code: 'AM' , country_name: 'Armenia', color: '#eea638'},
{code: 'US' , country_name: 'United State',color: '#eea638'},
{code: 'AR' , country_name: 'Argentina', color: '#eea638'},
{code: 'AT', country_name: 'Austria', color: '#eea638'},
{code: 'AU', country_name: 'Australia', color: '#eea638'}
]
So I would like to set the div color dinamically based in this object list. I tried to do this:
<div *ngFor="let country of countries">
<p class="m-b-10">{{country.country_name}}
<span class="f-right">{{country.code}}</span>
</p>
<div class="progress">
<div class="progress-bar" ng-style="{'background-color': country.color}" [style.width]="'75%'"></div>
</div>
But it's not working. Could you please help me?
angular property-binding
angular property-binding
asked Nov 22 at 12:34
Joh
567
567
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
There are two issues with your implementation:
You've used
ng-style
which was used in AngularJS(1.x). But since you're working with Angular(2+) use[ngStyle]
instead ofng-style
.Your
div
doesn't have a content. Also, it just haswidth
and notheight
. Another thing to point out here is that since you're using[ngStyle]
, you can use thewidth
and theheight
attributes right there instead of creating another[style.width]
or[style.height]
attribute binding.
Give this a try to fix it:
<div *ngFor="let country of countries">
<p class="m-b-10">{{country.country_name}}
<span class="f-right">{{country.code}}</span>
</p>
<div class="progress">
<div
class="progress-bar"
[ngStyle]="{ 'background-color': country.color, 'width': '75%', 'height': '50px'}">
</div>
</div>
</div>
Here's a Sample StackBlitz for your ref.
thank you. it's working :)
– Joh
Nov 22 at 13:40
add a comment |
Div height is missing.
<div class="progress">
<div class="progress-bar" [ngStyle]="{'background-color': country.color}" style="width:75%; height:25px" ></div>
</div>
Thank you so much! ;)
– Joh
Nov 22 at 13:42
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53431156%2fhow-to-set-color-in-div-element-using-property-binding-with-angular-4%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
There are two issues with your implementation:
You've used
ng-style
which was used in AngularJS(1.x). But since you're working with Angular(2+) use[ngStyle]
instead ofng-style
.Your
div
doesn't have a content. Also, it just haswidth
and notheight
. Another thing to point out here is that since you're using[ngStyle]
, you can use thewidth
and theheight
attributes right there instead of creating another[style.width]
or[style.height]
attribute binding.
Give this a try to fix it:
<div *ngFor="let country of countries">
<p class="m-b-10">{{country.country_name}}
<span class="f-right">{{country.code}}</span>
</p>
<div class="progress">
<div
class="progress-bar"
[ngStyle]="{ 'background-color': country.color, 'width': '75%', 'height': '50px'}">
</div>
</div>
</div>
Here's a Sample StackBlitz for your ref.
thank you. it's working :)
– Joh
Nov 22 at 13:40
add a comment |
There are two issues with your implementation:
You've used
ng-style
which was used in AngularJS(1.x). But since you're working with Angular(2+) use[ngStyle]
instead ofng-style
.Your
div
doesn't have a content. Also, it just haswidth
and notheight
. Another thing to point out here is that since you're using[ngStyle]
, you can use thewidth
and theheight
attributes right there instead of creating another[style.width]
or[style.height]
attribute binding.
Give this a try to fix it:
<div *ngFor="let country of countries">
<p class="m-b-10">{{country.country_name}}
<span class="f-right">{{country.code}}</span>
</p>
<div class="progress">
<div
class="progress-bar"
[ngStyle]="{ 'background-color': country.color, 'width': '75%', 'height': '50px'}">
</div>
</div>
</div>
Here's a Sample StackBlitz for your ref.
thank you. it's working :)
– Joh
Nov 22 at 13:40
add a comment |
There are two issues with your implementation:
You've used
ng-style
which was used in AngularJS(1.x). But since you're working with Angular(2+) use[ngStyle]
instead ofng-style
.Your
div
doesn't have a content. Also, it just haswidth
and notheight
. Another thing to point out here is that since you're using[ngStyle]
, you can use thewidth
and theheight
attributes right there instead of creating another[style.width]
or[style.height]
attribute binding.
Give this a try to fix it:
<div *ngFor="let country of countries">
<p class="m-b-10">{{country.country_name}}
<span class="f-right">{{country.code}}</span>
</p>
<div class="progress">
<div
class="progress-bar"
[ngStyle]="{ 'background-color': country.color, 'width': '75%', 'height': '50px'}">
</div>
</div>
</div>
Here's a Sample StackBlitz for your ref.
There are two issues with your implementation:
You've used
ng-style
which was used in AngularJS(1.x). But since you're working with Angular(2+) use[ngStyle]
instead ofng-style
.Your
div
doesn't have a content. Also, it just haswidth
and notheight
. Another thing to point out here is that since you're using[ngStyle]
, you can use thewidth
and theheight
attributes right there instead of creating another[style.width]
or[style.height]
attribute binding.
Give this a try to fix it:
<div *ngFor="let country of countries">
<p class="m-b-10">{{country.country_name}}
<span class="f-right">{{country.code}}</span>
</p>
<div class="progress">
<div
class="progress-bar"
[ngStyle]="{ 'background-color': country.color, 'width': '75%', 'height': '50px'}">
</div>
</div>
</div>
Here's a Sample StackBlitz for your ref.
edited Nov 22 at 13:26
answered Nov 22 at 12:37
SiddAjmera
12.4k31137
12.4k31137
thank you. it's working :)
– Joh
Nov 22 at 13:40
add a comment |
thank you. it's working :)
– Joh
Nov 22 at 13:40
thank you. it's working :)
– Joh
Nov 22 at 13:40
thank you. it's working :)
– Joh
Nov 22 at 13:40
add a comment |
Div height is missing.
<div class="progress">
<div class="progress-bar" [ngStyle]="{'background-color': country.color}" style="width:75%; height:25px" ></div>
</div>
Thank you so much! ;)
– Joh
Nov 22 at 13:42
add a comment |
Div height is missing.
<div class="progress">
<div class="progress-bar" [ngStyle]="{'background-color': country.color}" style="width:75%; height:25px" ></div>
</div>
Thank you so much! ;)
– Joh
Nov 22 at 13:42
add a comment |
Div height is missing.
<div class="progress">
<div class="progress-bar" [ngStyle]="{'background-color': country.color}" style="width:75%; height:25px" ></div>
</div>
Div height is missing.
<div class="progress">
<div class="progress-bar" [ngStyle]="{'background-color': country.color}" style="width:75%; height:25px" ></div>
</div>
answered Nov 22 at 12:43
Sanjay Katiyar
38518
38518
Thank you so much! ;)
– Joh
Nov 22 at 13:42
add a comment |
Thank you so much! ;)
– Joh
Nov 22 at 13:42
Thank you so much! ;)
– Joh
Nov 22 at 13:42
Thank you so much! ;)
– Joh
Nov 22 at 13:42
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53431156%2fhow-to-set-color-in-div-element-using-property-binding-with-angular-4%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown