我正在使用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一起使用吗?是否有其他机制来评估表达式并修改选项卡上的类?
我在 Angular2 项目的响应式表单中使用 ng-bootstrap 的 ngbDatepicker,日期是可选的,但是 ngbDatepicker 总是将表单标记为无效,除非选择了日期。
有没有办法从表单验证中排除 ngbDatepicker,或者对其进行配置,使其无论是否设置了值都返回 Valid ?
我正在使用带有表格的 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)
我有一个看起来像这样的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
我有一个 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
实际创建时执行的最佳方法。
angular ×2
angularjs ×1
css ×1
html ×1
html-table ×1
javascript ×1
json ×1
ng-bootstrap ×1
rxjs ×1