小编Jav*_*SKT的帖子

加载所有字体后,document.fonts.ready 不会执行。字体加载之前正在执行

我有下面的代码,我希望它会在加载所有字体后执行。但它没有按预期工作。

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.

检查字体是否加载的上述方法是否正确?

javascript font-face font-family

7
推荐指数
0
解决办法
2357
查看次数

ngx-datatable rowClass不起作用

正如我所看到的那样,这个问题可能已经有了答案,这对我解决问题没有帮助.我的问题是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-material ngx-datatable angular

6
推荐指数
1
解决办法
5542
查看次数

如何在Typescript Angular中的另一个函数内调用函数

我是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中搜索了这些链接

'this.function'不是函数-OO JS

this.function不是函数:typescript

角度-this.function不是函数

他们说使用Arrow函数来调用其他成员函数。但是我不知道如何在我的代码中实现他们的建议。可能我对它们的理解不正确。

我想要您的帮助,如何使用functionOne();中的箭头函数调用this.functionTwo();

谢谢您的帮助。

javascript google-maps typescript ionic-framework angular

5
推荐指数
2
解决办法
6059
查看次数

何时使用迭代器而不是普通的循环结构 - Javascript

我一直在阅读有关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 的优点是什么......

我在阅读的文章中没有得到任何澄清。感谢您的帮助。

javascript iterator typescript ecmascript-6

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

如何在 Angular 4 材料的 Stepper 中提交表单

如何在角材料的步进器中提交表单数据。我正在遵循角度材料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

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

如何将包含空格的字符串正确分配给data属性?

我遇到了一个问题,即我只从服务器端获取一瓶字符串。我将该字符串分配给数据属性,例如

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。请引导我走正确的路。谢谢。

html javascript jquery custom-data-attribute

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

如何在 Angular 4 中禁用 FormArray 中的 FormControl

我写了下面的代码片段,我认为这将禁用FormControlFormArray

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

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

为什么要在类中声明变量,甚至在构造函数中将该变量赋值给它

在下面的代码中,您可以看到我constObjTest类中声明了一个变量.并同时在构造函数中分配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)

如果我们不申报,请告知,将会发生什么.

javascript typescript

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

如何使用HTML代码中的预定义参数映射HTTP调用的响应参数 - Angular 5

我处于这样的情况,我写了如下的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

先感谢您 :-)

javascript observable typescript angular

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

如果更改顺序包含三元运算符,为什么逻辑或会以不同的方式工作

为什么下面的代码给出不同的输出?

var test;

var output = test ? 'Test' : 'No Test' || true;
var output2 = true || test ? 'Test' : 'No Test'

console.log(output); // No Test
console.log(output2); // Test
Run Code Online (Sandbox Code Playgroud)

javascript logical-operators

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

如何在角度 4 中使用 *ngFor 创建每行 2 列的表

我有一个像下面这样的对象数组

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>,但没有达到我的结果。请告诉我正确的方法来做到这一点。

谢谢你 :-)

javascript typescript angular

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

selectedIndex 不适用于 mat-tab-nav-bar 角度材料选项卡

我写了如下标签代码

<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 一起使用?

javascript typescript angular-material angular

0
推荐指数
1
解决办法
3716
查看次数

为什么这个在javascript打印窗口对象?

consoleChrome开发人员工具的选项卡中,我输入了this,它显示了Window对象.如何this成为窗口对象?

请考虑以下代码段

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答案

这是什么意思

这在javascript中

但是不明白上面的代码片段是如何工作的(我评论的那一行)

更新:

我在jsfiddle中尝试了上面的代码片段,其中输出this.firstname是未定义的.所以这就是我问这个问题的原因.但是在stackoverflow代码片段中,它运行正常

javascript

-1
推荐指数
1
解决办法
116
查看次数