首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJs ng-style ::after

AngularJs ng-style ::after
EN

Stack Overflow用户
提问于 2014-01-26 01:10:46
回答 2查看 3.9K关注 0票数 6

我正在尝试根据ng-repeat中元素的属性来编辑边框底色。

这是一个如何构造html的示例。更改后的样式为.active-tool::after {border-bottom-color: rgb(247, 153, 248)}

html:

代码语言:javascript
复制
<div data-ng-repeat="row in rows">
        <div class='container'>
            <div 
                data-ng-style="getPrimaryColor(tvShow)" 
                class='folder tvshow' 
                data-ng-class="isActiveFolder(tvShow)" 
                id='{{tvShow.id}}' 
                data-ng-repeat="tvShow in row track by $index">

                <div data-ng-click="setSelectedTvShow(tvShow)">
                    <p class="tvshow-name">{{tvShow.name}}</p>
                </div>
            </div>
        </div>

controller.js

代码语言:javascript
复制
$scope.isActiveFolder = function(tvShow) {
        if($scope.selectedTvShow !== null && tvShow.id !== null) {
           return $scope.selectedTvShow===tvShow.id ? 'active-tool' : '';
        }
    };

    $scope.getPrimaryColor = function(tvShow) {
       if($scope.selectedTvShow !== null) {
           var result = '{' + tvShow.id + '.active-tool::after {border-bottom-color: rgb(247, 153, 248)}}';
           console.log(result);
           return result;
       };

你知道该怎么做吗?

EN

回答 2

Stack Overflow用户

发布于 2015-11-13 16:09:24

我使用这个快速的技巧:

将此代码放入模板中:

代码语言:javascript
复制
<style type="text/css">
    .active-tool::after {
        border-bottom-color: {{getShowBorderColor(tvShow)}};
    }
</style>

然后在你的控制器中:

代码语言:javascript
复制
$scope.getShowBorderColor = function(tvShow){
    return tvShow.color; // change this for how you want to calculate the color
};
票数 5
EN

Stack Overflow用户

发布于 2014-01-27 03:08:13

您不能这样使用ng-style,因为css样式属性不支持选择器

实际上,你根本不用javascript就可以做到这一点:

标记:

代码语言:javascript
复制
<div data-ng-repeat="row in rows">
    <div class='container'>
        <div class='folder tvshow' 
             data-ng-class="{active-tool : selectedTvShow === tvShow.id}" 
             id='{{tvShow.id}}' 
             data-ng-repeat="tvShow in row track by $index">

            <div data-ng-click="selectedTvShow = tvShow.id">
                <p class="tvshow-name">{{tvShow.name}}</p>
            </div>
        </div>
    </div>
</div>

css:

代码语言:javascript
复制
.active-tool::after {
  border-bottom-color: rgb(247, 153, 248);
}   
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21353510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档