我有下面的代码,我希望它会在加载所有字体后执行。但它没有按预期工作。
document.fonts.ready.then( () => {
document.fonts.check('14px Poppins'); // returning false always in ready promise
} );
Run Code Online (Sandbox Code Playgroud)
但是在网站完全加载后,如果检查字体是否存在,我将获得真正的价值
我是说document.fonts.check('14px Poppins'); // returning true.
检查字体是否加载的上述方法是否正确?
正如我所看到的那样,这个问题可能已经有了答案,这对我解决问题没有帮助.我的问题是ngx-datatable中的rowClass对我不起作用.
数据表代码 - test.component.html
<ngx-datatable class="material"
[rows]="rows"
[columnMode]="'force'"
[reorderable]="reorderable"
[rowClass]="getRowClass"
(activate)="onActivate($event)">
<ngx-datatable-column name="Cabinet Name" [flexGrow]="1">
<ng-template let-row="row" ngx-datatable-cell-template>
<mat-icon class='folder-color'>folder</mat-icon>
{{ row?.cabinetname }}
</ng-template>
</ngx-datatable-column>
</ngx-datatable>
Run Code Online (Sandbox Code Playgroud)
TS代码 - test.component.ts
getRowClass = (row) => {
return {
'row-color': true
};
}
Run Code Online (Sandbox Code Playgroud)
SCSS代码 - test.component.scss
.row-color {
background-color: green;
}
Run Code Online (Sandbox Code Playgroud)
在chrome开发人员工具中,它显示添加的行颜色类,但行不是绿色作为背景颜色.我不知道上面的代码有什么问题.请指导我解决问题的正确方法.
注意:我正在开发Angular 5
我是Angular 2的新手。我在Angular中编写了以下代码
export class TestClass {
constructor() {
this.initMap();
}
initMap() {
this.marker.addListener('dragend', this.onMarkerDrop);
}
onMarkerDrop(event) {
this.functionTwo(); // Getting error this.functionTwo is not a function
}
functionTwo() {
}
}
Run Code Online (Sandbox Code Playgroud)
注意:在问这个问题之前,我在stackoverflow中搜索了这些链接
他们说使用Arrow函数来调用其他成员函数。但是我不知道如何在我的代码中实现他们的建议。可能我对它们的理解不正确。
我想要您的帮助,如何使用functionOne();中的箭头函数调用this.functionTwo();
谢谢您的帮助。
我一直在阅读有关ES6 中的迭代器和可迭代对象的文章。我见过如下的一个例子。
let someArr = [1, 2, 3, 4];
let iteratorVar = someArr[Symbol.iterator]();
console.log(iteratorVar.next().value); // If we log for 5 times, it will print all array elements.
Run Code Online (Sandbox Code Playgroud)
但我怀疑我们可以简单地使用 for、while 等循环来获取数组中的每个元素,如下所示
for (let i = 0; i < someArr.length; i++) {
console.log(someArr[i]);
}
Run Code Online (Sandbox Code Playgroud)
那么,与 for、while 等普通循环结构相比,使用 Iterables 和 Iterators 的优点是什么......
我在阅读的文章中没有得到任何澄清。感谢您的帮助。
如何在角材料的步进器中提交表单数据。我正在遵循角度材料https://material.angular.io/components/stepper/examples中的示例。在问这个问题之前我做了很多谷歌搜索,但没有找到任何答案。
<mat-horizontal-stepper [linear]="isLinear" #stepper="matHorizontalStepper">
<mat-step [stepControl]="firstFormGroup">
<form [formGroup]="firstFormGroup">
<ng-template matStepLabel>Fill out your name</ng-template>
<mat-form-field>
<input matInput placeholder="Last name, First name" formControlName="firstCtrl" required>
</mat-form-field>
<div>
<button mat-button matStepperNext>Next</button>
</div>
</form>
</mat-step>
<mat-step [stepControl]="secondFormGroup">
<form [formGroup]="secondFormGroup">
<ng-template matStepLabel>Fill out your address</ng-template>
<mat-form-field>
<input matInput placeholder="Address" formControlName="secondCtrl" required>
</mat-form-field>
<div>
<button mat-button matStepperPrevious>Back</button>
<button mat-button matStepperNext>Next</button>
</div>
</form>
</mat-step>
<mat-step>
<ng-template matStepLabel>Done</ng-template>
You are now done.
<div>
<button mat-button matStepperPrevious>Back</button>
<button mat-button (click)="stepper.reset()">Reset</button>
</div>
</mat-step>
</mat-horizontal-stepper>
Run Code Online (Sandbox Code Playgroud)
我已经填写完两份表格了。但之后我不知道如何获取/提交表单数据。
谢谢你的帮助... :-)
javascript typescript angular-material angular angular-material-stepper
我遇到了一个问题,即我只从服务器端获取一瓶字符串。我将该字符串分配给数据属性,例如
var uom = serverSideValue // Contains ["one bottle only"]
<div class="uomClass" data-uom="+ JSON.stringify(uom) +"></div>
Run Code Online (Sandbox Code Playgroud)
但是当我在开发人员工具中检查该元素时,它看起来像
data-uom="["one" only"]
Run Code Online (Sandbox Code Playgroud)
如果不是 JSON.stringify
data-uom="one" only
Run Code Online (Sandbox Code Playgroud)
当我尝试访问 uom 时,如下所示
$('.uomClass').data('uom')
Run Code Online (Sandbox Code Playgroud)
上面的代码行仅给出一个而不是一个水瓶的结果
我在这里做错了什么。我正在动态构建上面的 uom html。请引导我走正确的路。谢谢。
我写了下面的代码片段,我认为这将禁用FormControl的FormArray。
some.component.html
<form [formGroup]="testForm">
<div *ngFor="let num of countArr">
<input type="text" formNameArray="arrs">
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
some.component.ts
countArr = [1, 2, 3, 4, 5];
count = 5;
arrs;
testForm: FormGroup;
this.testForm = this.formBuilder.group(
arrs: this.formBuilder.array([])
);
this.arrs = this.testForm.get('arrs');
for (let i = 0; i < this.count; i++) {
this.arrs.insert(i, new FormControl({value: '', disabled: true}));
}
Run Code Online (Sandbox Code Playgroud)
但是for执行完成后,我检查了表单,发现没有任何内容被禁用。你能告诉我我哪里做错了吗???:-)
感谢您的帮助!!!:-)
javascript typescript angular angular-forms angular-formbuilder
在下面的代码中,您可以看到我constObj在Test类中声明了一个变量.并同时在构造函数中分配constObj对象this.
为什么我们需要再次声明变量,即使我们已经this在构造函数中将其赋值?
在webstormIDE,它抛出的错误doesn't have the property constObj,如果我这样做this.constObj,如果变量没有声明.但代码工作正常没有问题.
声明变量是强制性的,即使我们将其赋值给 this
const constObj = {
a: function() {
console.log("sivakumar");
}
};
class Test {
constObj: any; // Is this line mandatory? I mean declaring it???
constructor() {
Object.assign(this, {
constObj
});
}
callMethod() {
this.constObj.a();
}
}
new Test().callMethod();Run Code Online (Sandbox Code Playgroud)
如果我们不申报,请告知,将会发生什么.
我处于这样的情况,我写了如下的HTML代码
<ul>
<li *ngFor="let item of items" data-id="{{ item.id }}">{{ item.name }}</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我假设http调用的响应参数如下(在ItemComponent中)
let response = [{
id: 1,
name: 'Item 1'
}, {
id: 2,
name: 'Item 2'
}]
Run Code Online (Sandbox Code Playgroud)
但我正在逐渐从响应API如下
response = [{
item_id: 1,
item_name: 'Item 1'
}, {
item_id: 2,
item_name: 'Item 2'
}]
Run Code Online (Sandbox Code Playgroud)
由于该响应,我的HTML没有得到渲染.有没有办法用我们自己的预定义参数映射原始响应参数.
因此,如果API人员更改他们发送的响应参数,我不需要多次更改HTML中的绑定.
注意: Angular 5
先感谢您 :-)
为什么下面的代码给出不同的输出?
var test;
var output = test ? 'Test' : 'No Test' || true;
var output2 = true || test ? 'Test' : 'No Test'
console.log(output); // No Test
console.log(output2); // TestRun Code Online (Sandbox Code Playgroud)
我有一个像下面这样的对象数组
let columns = [
{id: 1, columnName: 'Column 1'},
{id: 2, columnName: 'Column 2'},
{id: 3, columnName: 'Column 3'},
{id: 4, columnName: 'Column 4'}
];
Run Code Online (Sandbox Code Playgroud)
我想使用 Angular *ngFor 创建如下表
<table>
<tr>
<td>Column 1</td>
<td>Column 2</td>
</tr>
<tr>
<td>Column 3</td>
<td>Column 4</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
我想要,每行两列。我试过在 *ngFor 中使用<tr>,但没有达到我的结果。请告诉我正确的方法来做到这一点。
谢谢你 :-)
我写了如下标签代码
<nav mat-tab-nav-bar [selectedIndex]="0">
<a mat-tab-link
*ngFor="let link of navLinks; let i = index;"
[routerLink]="link.path"
routerLinkActive #rla="routerLinkActive"
[active]="rla.isActive">
<div class="link-tab-label">{{link.label}}</div>
<mat-icon class="link-tab-close" (click)="closeTab(i)">close</mat-icon>
</a>
</nav>
Run Code Online (Sandbox Code Playgroud)
当我运行该项目时,我遇到了如下所示的问题
compiler.js:485 Uncaught Error: Template parse errors:
Can't bind to 'selectedIndex' since it isn't a known property of 'nav'. ("
<mat-card>
<mat-card-content>
<nav mat-tab-nav-bar [ERROR ->][selectedIndex]="0">
Run Code Online (Sandbox Code Playgroud)
如何将 selectedIndex 与 mat-tab-nav-bar 一起使用?
在consoleChrome开发人员工具的选项卡中,我输入了this,它显示了Window对象.如何this成为窗口对象?
console.log(this);Run Code Online (Sandbox Code Playgroud)
请考虑以下代码段
var firstname = "Javascript";
var lastname = "Lover - SKT";
function getName() {
this.firstname = "Sivakumar";
this.lastname = "Tadisetti";
}
console.log(firstname);
getName();
console.log(this.lastname); // How this.lastname is working here?Run Code Online (Sandbox Code Playgroud)
我已经阅读了以下StackOverflow答案
但是不明白上面的代码片段是如何工作的(我评论的那一行)
更新:
我在jsfiddle中尝试了上面的代码片段,其中输出this.firstname是未定义的.所以这就是我问这个问题的原因.但是在stackoverflow代码片段中,它运行正常
javascript ×12
typescript ×8
angular ×7
ecmascript-6 ×1
font-face ×1
font-family ×1
google-maps ×1
html ×1
iterator ×1
jquery ×1
observable ×1