我在Angular中创建了一个简单的指令,它生成一个滚动条来显示一些产品。
我遇到了代码的一部分问题。
<ul ng-style="{'margin-left':{{currentMargin}}+'px'}">
<li ng-repeat="tyre in tyres" ng-style="{'width':{{liWidth}}+'px'}">
<div class="imageContainer"><img src="../Images/eutl/{{tyre.image}}"/></div>
<div class="details">
<h3>{{tyre.name}}</h3>
<a href="{{tyre.link}}">About this tire</a>
</div>
</li>
</ul>
and this is what it looks like in the browser once executed
<ul ng-style="{'margin-left':0+'px'}">
<!-- ngRepeat: tyre in tyres -->
<li ng-repeat="tyre in tyres" ng-style="{'width':265+'px'}" class="ng-scope" style="width: 265px;">
<div class="imageContainer"><img src="../Images/eutl/tire.jpg"></div>
<div class="details">
<h3 class="ng-binding">Fuel Efficient</h3>
<a href="#">About this tire</a>
</div>
</li>
<!-- end ngRepeat: tyre in tyres --></ul>
在我的页面上执行此操作后,我得到了滚动条,“li”元素中的ng-style显示正确,而“ul”的ng-style则没有。
我尝试了多种解决方案,甚至尝试从“li”元素添加相同的ng-style,它只是没有得到处理而且没有添加样式。
任何人都可以通过指出我的标记中的错误或可能导致一个ng风格处理Li元素而另一个没有处理UL本身的原因来帮助我吗?
我遇到的另一个问题是currentMargin的值没有在IE8 / 9中更新,等等。
由于
答案 0 :(得分:8)
ng-style
接受评估为对象的Angular expression。这意味着如果你想在该表达式中使用一个变量,你可以直接使用它(没有双重卷曲):
ng-style="{width: liWidth + 'px'}"
如果要将动态插值值插入接受字符串的参数(如<img alt="{{product.name}} logo">
),则使用双曲线。然后,将表达式放在这些括号中。
答案 1 :(得分:5)
尝试:
ng-style="{'width':liWidth+'px'}">
没有大括号,很多ng指令都不喜欢它