小编ali*_*990的帖子

角度控制器未注册错误

我是Angular JS的新手,我正在使用它的1.6版本.

我有这个apptest.js脚本:

var myApp = angular.module("myApp", []);

(function(){
    "use strict";
    myApp.controller("productController", function($scope, $http)

    {
        $http.get('data/data.json').then(function(prd)
        {
            $scope.prd = prd.data;
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

在这里我的data/data.json数据:

[
  {
    "id":"1",
    "title":"20 Foot Equipment Trailer",
    "description":"2013 rainbow trailer 20 feet x 82 inch deck area, two 5,000 lb axels, electric brakes, two pull out ramps, break away box, spare tire.",
    "price":6000,
    "posted":"2015-10-24",
    "contact": {
      "name":"John Doe",
      "phone":"(555) 555-5555",
      "email":"johndoe@gmail.com"
    },
    "categories":[
      "Vehicles",
      "Parts and Accessories"
    ],
    "image": "http://www.louisianasportsman.com/classifieds/pics/p1358549934434943.jpg",
    "views":213
  } …
Run Code Online (Sandbox Code Playgroud)

angularjs

26
推荐指数
2
解决办法
8万
查看次数

Angular 7 反应式表单如何重置表单并获取其初始值而不是将它们重置为空值

有没有办法将反应式表单组重置为其初始值而不是使用.reset()方法将其清空?

我有以下stackblitz,其中默认选择的值为Parent,如果用户将其更改为姐妹,并希望将表单设置为初始值,请单击重置按钮来执行此操作。

目前,我尝试过:

this.formGroup.reset();
//Or
this.formGroup.markAsPristine;
//Or
this.formGroup.markAsTouched
Run Code Online (Sandbox Code Playgroud)

.reset()完全地重置表单。

PS 有些人可能会说用户可以重新选择默认值而不是点击重置按钮。但就我而言,我有一个巨大的用户表单,他需要在其中更新他的信息,如果他在某些值中弄错了,他可能需要重置为初始值。

angular angular-reactive-forms angular-forms angular7

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

Typescript错误,因为类型没有重叠,所以此条件将始终返回“ true”

我在表单组上有此条件:

if((age>17 && (this.frType=="Infant")) 
|| (age>40 && this.frType=="Grandchild")
|| (age<=5 && 
   (this.frType!="Child" 
   || this.frType!="Infant" 
   || this.frType!="Grandchild" || this.frType!="Cousin")))
Run Code Online (Sandbox Code Playgroud)

它包含3个主要条件:

  1. 如果年龄17岁,则无法设置为 infant
  2. 如果一个人大于40岁,他就不能成为 grandchild
  3. 如果一个人是不到5年时间,他应该是childinfantgrandchildcousin

如果这些条件之一为真,我将发送一条错误消息。

我收到的错误是:

[ts]由于类型'“ Child”'和'“ Infant”'没有重叠,因此此条件将始终返回'true'。[2367]

在这部分if条件上:

|| this.frType!="Infant" || this.frType!="Grandchild" || this.frType!="Cousin")))
Run Code Online (Sandbox Code Playgroud)

我在其他组件中使用了确切的条件,并且没有显示错误。

if((age>17 && (this.family_relation_type=="Infant")) 
|| (age>40 && this.family_relation_type=="Grandchild")
|| (age<=5 && 
   (this.family_relation_type!="Child" || 
    this.family_relation_type!="Infant" || 
    this.family_relation_type!="Grandchild" || 
    this.family_relation_type!="Cousin")))
Run Code Online (Sandbox Code Playgroud)

这是我在这两个部分中计算年龄的方式:

let timeDiff = Math.abs(Date.now() - this.formGroup.controls['dob'].value);
let age = Math.floor((timeDiff / (1000 * 3600 * …
Run Code Online (Sandbox Code Playgroud)

javascript typescript typescript2.0 angular

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

MySQL 错误:缺少约束索引

我在我的数据库中创建 2 个表:

DROP TABLE IF EXISTS `med_pharmacy`;
CREATE TABLE IF NOT EXISTS `med_pharmacy` (
  `med_pharmacy_id` int(11) NOT NULL AUTO_INCREMENT,
  `med_id` int(11) NOT NULL,
  `med_barcode` varchar(45) DEFAULT NULL,
  `med_received` date DEFAULT NULL,
  `med_expiry` date DEFAULT NULL,
  `med_tablet` int(11) DEFAULT NULL,
  `med_pill` int(11) DEFAULT NULL,
  `clinic_id` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`med_pharmacy_id`),
  KEY `fk_med_pharmacy_medication1_idx` (`med_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1261 DEFAULT CHARSET=utf8mb4;
Run Code Online (Sandbox Code Playgroud)

和:

DROP TABLE IF EXISTS `medication`;

CREATE TABLE `medication` (
  `med_id` int(11) NOT NULL,
  `med_name` varchar(75) NOT NULL,
  `med_date_added` date DEFAULT …
Run Code Online (Sandbox Code Playgroud)

mysql sql phpmyadmin wampserver

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

Angular 4为新添加的数组元素设置动画

我有一个div,我在其中显示的数组中有一些值,我可以添加更多.新添加的值将直接添加到div:

list = ['milk', 'sugar', 'flour'];

state = 'normal';

//@ViewChild('f') addForm: NgForm;

onAdd(item)
  {
    this.list.push(item);
    //this.addForm.reset();
  }
Run Code Online (Sandbox Code Playgroud)

我有这个简单的动画:

animations: [
    trigger('divState', [
        state('normal', style({
            backgroundColor: 'red',
            transform: 'translateX(0)'
        })),
        state('highlighted', style({
            backgroundColor: 'blue',
            transform: 'translateX(100px)'
        })),
        transition('normal=>highlighted', animate(300)),
        transition('highlighted=>normal', animate(800))
    ])
  ]
Run Code Online (Sandbox Code Playgroud)

这适用于div,它将为其设置动画.

我真正需要的是将闪烁的红色应用于新添加的数组值,如闪存几毫秒.

所以,如果我有以下内容:

牛奶

面粉

然后添加鸡蛋:

牛奶

面粉

鸡蛋div应该闪烁.

我知道我应该处理索引,通过获取最后添加的索引并在其上应用动画:

<li 
  class="list-group-item"

  *ngFor="let item of list; let i = index" >
  {{ item }}
</li>
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法:

<li [@divState]="state"
  class="list-group-item"

  *ngFor="let item of list; let i …
Run Code Online (Sandbox Code Playgroud)

animation angular

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

角度7和角度材料如何获取mat-select的选定选项文本而不是其值

我需要获取所选材料下拉列表的文本<mat-select>而不是其值:

<ng-container matColumnDef="fr">
        <th mat-header-cell *matHeaderCellDef> Family Rel. </th>
        <td mat-cell *matCellDef="let element; let i = index;">
          <div [formGroupName]="i">
            <mat-form-field color="warn" appearance="outline">
              <mat-label>Family Relation</mat-label>
              <mat-select #familyRelation (selectionChange)="onChange(element, i, 'hh')" id="family_relation"
                formControlName="fr" placeholder="Family Relation">
                <mat-option *ngFor="let familyRelation of familyRelationArray;" [value]="familyRelation.family_relation_id">
                  {{familyRelation.family_relation_type}}
                </mat-option>
              </mat-select>
            </mat-form-field>&nbsp;
          </div>
        </td>
      </ng-container>
Run Code Online (Sandbox Code Playgroud)

这是我正在尝试做的事情:

@ViewChild('familyRelation') familyRel: ElementRef;
Run Code Online (Sandbox Code Playgroud)

并在下拉列表的更改选择上:

onChange(data, i, type) {
    let c = this.familyRel.nativeElement.innerText;
    console.log(c)
}
Run Code Online (Sandbox Code Playgroud)

我有以下错误:

错误TypeError:无法读取未定义的属性'innerText',位于

当我删除时innerText,控制台值为:

未定义

我需要什么,你可以在看stackblitz,如果我chosed Parent,我想Parent成为一个变量,而不是1这是它id。 …

angular-material angular angular-reactive-forms angular7

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

如何获取雪花上暂存的 csv 文件的标头名称?

是否可以将雪花上的暂存 csv 文件的标题放入数组中?

我需要循环所有字段以将数据插入到我们的数据仓库模型中,并且确实需要将这些列名称放入数组中。

snowflake-cloud-data-platform

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

即使表单未通过验证,组件加载时反应形式的Angular 7设置值也会启用保存按钮

我有以下问题。单击以检查堆栈闪电

我在构造函数中设置了反应形式:

this.formGroup = this.fb.group({
      'family_name_en': new FormControl('', Validators.required),
      'family_name_ar': new FormControl('', [Validators.required, Validators.pattern('[\u0600-\u06FF ]*')]),
      'unit_id': new FormControl({ value: '', disabled: true }, [Validators.required])
});
Run Code Online (Sandbox Code Playgroud)

而且ngOnInti(),我正在获取与关联的数据unit_id

当我将数据从平台迁移到另一个平台时,不建议使用阿拉伯语的姓氏,但现在是这样。因此,大多数数据将不使用阿拉伯文名称加载。

问题是该按钮始终处于启用状态,而我需要做的是,如果用户要更新此unit_id按钮,则他应该添加阿拉伯语名称,以便随后启用该按钮。

如果表单有效,则启用按钮在加载组件时不会造成伤害。

这是getData()获取数据并设置表单组控件值的方法:

ngOnInit() {
    this.getDataById();
}
Run Code Online (Sandbox Code Playgroud)

getDataById():

getDataById() {
    this.showSpinner = true;
    this.auth.getDataById(this.unit_id).subscribe(
      (data) => {
        if (data['info'][0]['total'] == 1) {
          this.noDataBool = false;
          this.showSpinner = false;
          this.family_name_en = data['info'][0]['hh_last_name_en'];
          this.formGroup.controls['family_name_en'].setValue(this.family_name_en);
          this.family_name_ar = data['info'][0]['hh_last_name_ar'];
          this.formGroup.controls['family_name_ar'].setValue(this.family_name_ar);
          this.unit_id = data['info'][0]['unit_id'];
          this.formGroup.controls['unit_id '].setValue(this.unit_id);
    }
} …
Run Code Online (Sandbox Code Playgroud)

angular angular-reactive-forms angular6 angular7

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

Angular 7 如何计算组件完全加载到 DOM 上所需的时间

我试图使用堆栈上这个答案ngOninit()中的以下内容来获取组件完全加载到 dom 中所需的时间:

ngOnInit()
{
    var time = window.performance.timing.domContentLoadedEventEnd-window.performance.timing.navigationStart
    console.log(time)
}
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

-1544706869570

我用了ngAfterViewInit()

ngAfterViewInit(){
    var time = window.performance.timing.domContentLoadedEventEnd-window.performance.timing.navigationStart
    console.log(time)
  }
Run Code Online (Sandbox Code Playgroud)

结果是一样的。

如何将其转换为秒,是否有更好的解决方案来计算角度 7 中的组件负载?

performance angular angular7

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

Angular 8 - 将所有材质模块导入主应用程序模块是否比在不同模块中导入单个材质模块更好?

将材质模块导入 Angular 8 项目的最佳方法是什么?是通过将material.module.ts导入到app主模块然后在其他模块中使用它:

import { NgModule } from '@angular/core';

import {
  MatButtonModule,
  MatMenuModule,
  MatToolbarModule,
  MatIconModule,
  MatCardModule
} from '@angular/material';

@NgModule({
  imports: [
    MatButtonModule,
    MatMenuModule,
    MatToolbarModule,
    MatIconModule,
    MatCardModule
  ],
  exports: [
    MatButtonModule,
    MatMenuModule,
    MatToolbarModule,
    MatIconModule,
    MatCardModule
  ]
})
export class MaterialModule {}
Run Code Online (Sandbox Code Playgroud)

还是直接导入各个模块中主要用到的材质模块?

例如,如果我只使用mat-cardin ProductsModule,我只需导入MatCardModule产品模块并完成它。

angular-material angular angular-material-7 angular8

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