使用角度ng样式的问题,而不是在IE中更新

时间:2014-11-21 10:12:48

标签: javascript angularjs ng-style

我在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中更新,等等。

由于

2 个答案:

答案 0 :(得分:8)

ng-style接受评估为对象的Angular expression。这意味着如果你想在该表达式中使用一个变量,你可以直接使用它(没有双重卷曲):

ng-style="{width: liWidth + 'px'}"

如果要将动态插值值插入接受字符串的参数(如<img alt="{{product.name}} logo">),则使用双曲线。然后,将表达式放在这些括号中。

答案 1 :(得分:5)

尝试:

ng-style="{'width':liWidth+'px'}">

没有大括号,很多ng指令都不喜欢它