小编Ste*_*ith的帖子

AngularJS和UI-Bootstrap选项卡,使用ng-class修改选项卡

我正在使用ui-tabs在一个项目上使用AngularJS和UI-Bootstrap.

粗略的布局是这样的:

<uib-tabset>
    <uib-tab ng-repeat="tab in tabs" heading="{{tab.TAB_NAME}} : {{tab.Questions|sumByKey:'count'}} of {{tab.Questions.length}}" active="tab.active" disable="tab.disabled">

    <!-- Repeated Content -->

    </uib-tab>
</uib-tabset>
Run Code Online (Sandbox Code Playgroud)

sumByKey:'count'是一个过滤器,用于计算重复选项卡对象中'count'字段的总和.这将跟踪已回答的问题,tab.Questions.length计算选项卡中重复的问题数.

我可以在选项卡名称中显示这两个,因为我在这里工作,这是有效的,因此在每个选项卡中,选项卡名称是名称:问题 - 回答总问题,即:'停车:1的5'.

我想要做的是当这些数字相等时,使用ng-class将"已完成"类添加到选项卡,并且该选项卡中的所有问题都已得到解答.

我可以在选项卡中添加一个class ='complete',这样可行,但尝试使用ng-class根本不起作用,甚至ng-class ="complete".

有没有办法做到这一点?ng-class可以和uib-tabs一起使用吗?是否有其他机制来评估表达式并修改选项卡上的类?

angularjs angular-ui-bootstrap

7
推荐指数
1
解决办法
7313
查看次数

即使没有选择任何值,如何在表单中标记 ngbDatepicker 有效

我在 Angular2 项目的响应式表单中使用 ng-bootstrap 的 ngbDatepicker,日期是可选的,但是 ngbDatepicker 总是将表单标记为无效,除非选择了日期。

有没有办法从表单验证中排除 ngbDatepicker,或者对其进行配置,使其无论是否设置了值都返回 Valid ?

ng-bootstrap angular ngb-datepicker

5
推荐指数
1
解决办法
4821
查看次数

如何在使用 Bootstrap 表格格式时覆盖特定的表格边框 CSS 样式

我正在使用带有表格的 Bootstrap,并尝试对默认 CSS 进行一些小的覆盖,但成功率有限。

在下表中,我可以在表头 (thead) 的底部和页脚中的表行底部(tfoot 中的 tr)添加一个黑色边框,但我无法向最后一个表格行的底部 (tr:last-child),或者是表格主体的底部 (tbody),或者我想是表格页脚的顶部 (tfoot)。

我在这方面取得了有限的成功:

.table-sm.event-table tbody > tr:last-child {
    border-bottom: 2px solid #999;
}
Run Code Online (Sandbox Code Playgroud)

然而,这不会在所有浏览器中呈现,并且只能通过使单个像素浅灰色线成为 2 像素暗线来“工作”,这是我不想要的,我只想要在最后一行之间的单个像素暗边框正文和页脚的第一行(在第二行和总费用之间)。

我知道这与 CSS 规则的特殊性有关,并且 Bootstrap 的规则优先于我自己的规则,但是即使我能够使其他规则起作用,我也无法终生弄清楚如何指定这个规则.

.table-sm.event-table tbody > tr:last-child {
    border-bottom: 2px solid #999;
}
Run Code Online (Sandbox Code Playgroud)
.event-table {
	width: 100%;
}

.table thead > tr > th { 
	border-bottom: 1px solid #333;
}

.table tfoot > tr > td { 
	border-bottom: 1px solid #333;
}
Run Code Online (Sandbox Code Playgroud)

html css html-table twitter-bootstrap

3
推荐指数
1
解决办法
5291
查看次数

最优雅的方式来创建一个JSON对象

我有一个看起来像这样的javacript对象.

val = 
{
default: "version1"
version1: "abc.com"
version2: "def.com"
...
versionn:"xyz.com"
}
Run Code Online (Sandbox Code Playgroud)

我想将它转换为这样的嵌套json

"newval": {
"website": {
    "url": "abc.com"
},
"versions": {
    "version1": {
        "website": {
            "url": "abc.com"
        }
    },
    "version2": {
        "website": {
            "url": "def.com"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

}

如果if语句和不必要的变量,我的版本会使用很多.有没有一种优雅的方式来转换/创建这个JSON.

即默认版本是newval.website下的版本,所有版本数据都是fir newval.website.versions

javascript json

2
推荐指数
1
解决办法
115
查看次数

仅在创建元素后才使用 @ViewChild 获取 html 元素

我有一个 Angular 组件,其模板中有一个 html 元素。我希望能够在某个 Observable 发出任何值时创建该元素。因此我对元素进行了这样的编码

<div #myDiv *ngIf="myObs | async"> this is my div </div>
Run Code Online (Sandbox Code Playgroud)

myObs可观察到的在哪里。

同时我想以编程方式管理这个元素,因此我ViewChild像这样使用

@ViewChild('myDiv') myDiv: ElementRef;
....
ngAfterViewInit() {
  const myNativeElement = this.myDiv.nativeElement;
  doStuffWith(myNativeElement);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,ngAfterViewInit运行时this.myDiv为 null,并且仅在myObs发出后才创建。

doStuffWith(myNativeElement)我想知道哪种方法是确保仅在this.myDiv实际创建时执行的最佳方法。

这是重现该案例的示例代码

rxjs angular

2
推荐指数
1
解决办法
1137
查看次数