我需要从配置对象到ng-style
设置元素的背景,但由于某些未知的原因我不能这样做,这对我来说真的很奇怪,我真的可以'找到原因。
我尝试配置的元素:
<div id="progress-l" ng-style="{ 'width': pblc.options.width, 'height': pblc.options.height, 'background': plbc.options.color }"></div>
pblc
代表控制器,我使用controllerAs
选项
配置对象:
this.progressLOptions = {
color: '#F0F3F4',
width: '200px',
height: '20px',
};
最奇怪的是设置宽度和高度,在渲染的html中我看到了:
<div id="progress-l" ng-style="{ 'width': pblc.options.width, 'height': pblc.options.height, 'background': plbc.options.color }" style="width: 200px; height: 20px;">
</div>
我真的不知道ng风格的工作方式如何。是否有一些背景问题我无法找到?
答案 0 :(得分:4)
更新回答:
你有一个拼写错误 - plbc.options.color
而不是pblc.options.color
最可能的原因是plbc.options.color
未定义,为空,不在范围内或配置错误。这是因为当然没有语法错误。
尝试将其作为模板中的表达式输出 - {{plbc.options.color}}
并检查它。
答案 1 :(得分:3)
我稍微改了你的代码,请看这个
<div id="progress-l" ng-style="{ 'width': progressLOptions.width, 'height': progressLOptions.height, 'background': progressLOptions.color }" style="width: 200px; height: 20px;">
</div>
JS
$scope.progressLOptions = {
color: '#000',
width: '200px',
height: '20px',
};
它正在发挥作用。使用$ scope而不是this或者如果你想要this.progressLoptions然后在HTML中使用
<body ng-controller="somename as controllerName">
and then access this using somename.functionName