动态更新 CSS
Dynamically update CSS
我的HTML设置是这样的
<div.... repeats in a loop... >
....
<div ng-init="setWidthOfTimeLine(machine)" style="height:2px;" class="background-grey" >
<div ng-style="setWidthOfTime"></div>
</div>
</div>
在我的控制器中,我有这样的东西:
$scope.setWidthOfTimeLine = function(machine){
var length = (machine.machineStatus).length - 1;
var widthGreen = (length/8) *100;
$scope.setWidthOfTime = {
background : "green",
width : widthGreen + '%',
height : '2px'
}
console.log($scope.setWidthOfTime);
}
虽然我可以看到控制台上生成了正确的 CSS。它没有应用于 DOM,有什么想法我错过了什么?
安慰:
Object {background: "green", width: "12.5%"}
Object {background: "green", width: "25%"}
Object {background: "green", width: "25%"}
Object {background: "green", width: "37.5%"}
编辑:通过在 setWidthOfTime 变量中设置高度修复了一半的问题,但现在它对所有宽度值采用最后一个值 (37.5%(。
两个解决方案可能会有所帮助。
不要将setWidthOfTime
设置为范围的属性,而是尝试将其设置为范围对象的属性。假设我们将此对象称为 foo
,那么您将首先在控制器中使用名为 setWidthOfTime
的属性初始化foo
。从这一点开始,您将读取或写入foo.setWidthOfTime
,无论在控制器或视图中。这里的密钥在初始化后永远不会覆盖foo
。(我建议自己熟悉作用域继承的工作原理(
使用 ngController 的新语法作为 propertyName(仅在较新版本的 AngularJS 中可用(。你会有类似ng-controller="MyController as myctrl"
然后ng-style="myctrl.setWidthOfTime
.这个新语法是一个新认识的人,我自己没有用过它,但我读过它并看到了它的用处。试一试,如果它在你的AngularJS版本中可用。(参考资料(
假设machine
是你从ngRepeat
指令中得到的,试试这个:
<div.... ng-repeat="machine in $scope.machines"... >
....
<div style="height:2px;" class="background-grey" >
<div ng-style="setWidthOfTimeLine(machine)"></div>
</div>
</div>
控制器:
$scope.setWidthOfTimeLine = function(machine){
var length = (machine.machineStatus).length - 1;
var widthGreen = (length/8) *100;
var widthOfTime = {
background : "green",
width : widthGreen + '%',
height : '2px'
}
console.log(widthOfTime);
return widthOfTime;
}
相关文章:
- Css order属性不't在Jquery设置时更新
- jQuery整个页面正在重新加载以更新css
- 在Scroll上更新CSS代码:简化它就不会了'不要使用JQuery和最简单的Javascript
- Jquery在CSS下面更新
- 通过两种方法创建和更新 CSS
- Jquery动态更改CSS主题-强制更新类
- 当我尝试在网页中使用更新面板时,CSS不起作用
- CSS转换未在增加高度时更新背景色
- jQuery.CSS没有更新背景
- CSS在第一次点击jQuery.post提交时没有应用,然后在随后的点击中没有更新
- Javascript href 属性用于 css 未更新
- 在小间隔内通过javascript更新css时,会出现断断续续的动态观察动画
- 使用jQuery更新CSS属性
- CSS/JS未在Magento中更新
- 具有新创建的行的 Javascript tr 单击事件(更新 css)
- 如何在 css 中更新参数
- JavaScript/CSS-更新多个输入元素的值*和*大小
- 在不同的 DOM 元素中组合/批处理多个 CSS 更新以减少重排/重绘
- 我如何使我的CSS更新一致
- 汤博乐:如何用后标记控制CSS(更新:没有JQuery的工作方法!)