javascript - angularjs 进度条动态宽度

标签 javascript css angularjs progress-bar

我有一个图片库,其中包含一张照片、一个竖起大拇指按钮和每个元素的进度条。所有元素都派生自一个 JSON 对象。我想根据点击竖起大拇指按钮的次数动态更改我的进度条。

<div class="container col-lg-12">
    <h2>Vote for your favorite character</h2>
    <div class="progress" >
        <div class="progress-bar" role="progressbar" aria-valuenow="70" aria-valuemin="0" aria-valuemax="100" ng-style="{width:{{width(character.likes)}}+'%'}">
        </div>
    </div>
</div>
<input style="width:10%;height:10%" type="image" value="like" ng-click="incrementLikes(character)" src="images/thumbs-up.png"/>
<input style="width:10%;height:10%" type="image" value="dislike" ng-click="decrementLikes(character)" src="images/thumbs-down.png"/>

我的问题是无论按钮被点击多少次,进度条都不会更新。

$scope.incrementLikes = function(character) {
    character.likes++;
}

$scope.decrementLikes = function (character) {
    character.likes--;
}

$scope.width = function(likes) {
    if (likes >= 0) {
        return likes+10;
    }else{
        return 0;
    }
}     

有什么想法吗?

最佳答案

替换

ng-style="{width:{{width(character.likes)}}+'%'}"

与:

ng-style="{width : ( width(character.likes) + '%' ) }"

ng-style 指令需要一个对象作为输入。对象键为css属性名,值为css属性值。
由于 ng-style 属性中的代码是一个 javascript 对象 {},我们只需在值的末尾添加 %。由于我们附加到字符串,它会自动将值转换为字符串。

关于javascript - angularjs 进度条动态宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34123866/

相关文章:

javascript - 获取类型而不是节点的标记(XML/XPath)

javascript - 在 resolve 函数中返回 promise 作为它的延续

css - React Native 写入样式

html - 使用 CSS 将文本堆叠在元素上方

javascript - AngularJS 组件绑定(bind)不起作用

html - AngularJS 升级搞乱 CSS?

javascript - JSON 解析 -> stringify -> 解析损坏?

javascript - 在 Google map 信息窗口中显示动态内容

css - 将宽度设置为 100%

javascript - Karma 返回错误并从 0 中执行 0,即使我有一个使用 Jasime 的测试