每次选择文件时,我都会尝试触发onchange事件.如果我选择的文件不同,它会触发,但是,即使选择了两次相同的文件,我也想要触发.
HTML
  <input name="file" type="file"  (change)="onChange($event)" style="width:80%" />
Run Code Online (Sandbox Code Playgroud)
零件
onChange(event: any) {
        var files = event.srcElement.files;
        this.files = files;
        event= null;
}
Run Code Online (Sandbox Code Playgroud) 我正在使用 primeng 下拉菜单,并且很难将我的对象添加到下拉菜单中。它确实用空项目填充下拉列表..不知道如何指定字段名称。
超文本标记语言
<div class="form-group col-xs-3 col-md-3"
                                     [ngClass]="{
                                     'has-error':((ersaForm.get('costCenter').touched || ersaForm.get('costCenter').dirty ) && 
                                      !ersaForm.get('costCenter').valid) || (ersaForm.get('costCenter').value.cost_center_name == '')
                                     }">
 <label for="costCenterId" class="control-label">Cost Center</label>
 <p-dropdown [options]="iCostCenter" styleClass="form-control" formControlName="costCenter" placeholder="Cost Center (required)" id="costCenterId" name="costCenter"  dataKey="cost_center_id">
</p-dropdown>
Run Code Online (Sandbox Code Playgroud)
目的
    {
  "result": [
    {
      "cost_center_id": 0,
      "cost_center_name": "0"
    },
    {
      "cost_center_id": 1,
      "cost_center_name": "1"
    },
    {
      "cost_center_id": 2,
      "cost_center_name": "2"
    },
}
Run Code Online (Sandbox Code Playgroud)
TS
    export interface ICostCenter{
        cost_center_id: string,
        cost_center_name: string
    }
   iCostCenter: ICostCenter[];
    this._appParams.getAllCostCenters()
            .subscribe(
            data => {
                this.iCostCenter = data.result;
            }
Run Code Online (Sandbox Code Playgroud) 我的welcome.component包含菜单和选项卡,一旦我单击菜单项routerlink不会启动新请求,因此,不会重新加载选项卡组件。选项卡组件由多个路由器链接调用,应每次重新加载。
welcome.component.html
<nav-menu></nav-menu>
<tab><tab>
Run Code Online (Sandbox Code Playgroud)
navMenu.component.html
第一次URL = http:// localhost:xxxx / welcome
一旦我单击了navMenu.component.html中的项目,URL确实更改为 http:// localhost:53620 / tab / 2
但是,tab.component需要触发ngOnInt以重新加载ID 2的数据。
  <ul class="list-unstyled list" *ngFor='let menu of menues'>
      <li><a [routerLink]="['/tab',menu.LinkTabID]" class="anchorLink"><i class="icon-home scolor" ></i><font color="white">{{menu.Name}}</font></a></li>
  </ul>
Run Code Online (Sandbox Code Playgroud)
tab.component.html
  <div class="row  left" *ngFor='let control of tabControls; let i = index' style="padding-bottom:3px">
      <div class="col-lg-2 text-left" style="border:0px dotted">
           {{control.DropDownTitle}}:
      </div>
      <div class="col-lg-pull-3 text-left">
          <select name="{{control.DropDownTitle}}" [(ngModel)]="selected[i]" style="width:80%" required>
             <option value="" selected>Select</option>
             <option *ngFor='let controlList of control.DropdownValues' [ngValue]="controlList.Value">
                  {{controlList.Value}}
              </option>
          </select>
      </div>
</div>
Run Code Online (Sandbox Code Playgroud)
app.module
RouterModule.forRoot([
     { …Run Code Online (Sandbox Code Playgroud) 我在表中使用 p-autoComplete,一旦选择了一行,我的自动完成应该预先选择当前值。我尝试使用 [(ngModel)]="row.bsaName" 但它不起作用。(单击下拉菜单后,我会看到所有值,我确认这些值确实存在于我的 p-autoComplete 下拉菜单中)
另请注意,我使用了 p-calendar,一旦单击编辑,我就可以预先选择当前日期,并且不确定为什么自动完成不同
人TML
        <p-table #dt [value]="iBsaFollowup" dataKey="id" [paginator]="true" [rowsPerPageOptions]="[10,50,100]"
                     [rows]="10">
                <ng-template pTemplate="header">
                    <tr>
                        <th>ID</th>
                        <th>Followup DT</th>
                        <th>Comment</th>
                        <th>BSA Name</th>
                        <th>Action</th>
                    </tr>
                </ng-template>
                <ng-template pTemplate="body" let-row>
                    <tr>
                        <td>{{row.ID}}</td>
                        <td>
                            <div *ngIf="!row.isBSAEditable">{{row.followupDate}}</div>
                            <div *ngIf="row.isBSAEditable">
                                <p-calendar name="followupDate" [(ngModel)]="row.followupDate"  [showIcon]="true"></p-calendar> <span style="margin-left:35px"></span>
                                <span *ngIf="isEmpty(row.comment)" style="color:crimson; font-size:8pt">Required</span>
                            </div>
                        </td>
                        <td>
                            <div *ngIf="!row.isBSAEditable">{{row.comment}}</div>
                            <div *ngIf="row.isBSAEditable">
                                                                       <input type="text" [(ngModel)]="row.comment" style="width:95%" maxlength="200">
                                <span *ngIf="isEmpty(row.comment)" style="color:crimson; font-size:8pt">Required</span>
                            </div>
                        </td>
                        <td>
                            <div *ngIf="!row.isBSAEditable">{{row.bsaName}}</div>
                            <div *ngIf="row.isBSAEditable">
                                <p-autoComplete name="bsaNameList" [(ngModel)]="row.bsaName" [suggestions]="iBsaList"   (completeMethod)="searchBsaList($event)" [style]="{'width':'85%'}" [inputStyle]="{'width':'85%'}" field="name" dataKey="id" …Run Code Online (Sandbox Code Playgroud) typescript primeng angular primeng-datatable primeng-dropdowns
我有包含以下数据的数据表
Number   Type   Order  count
1        1      R       1
1        1      R       1
1        1      R       1
1        2      R       1
Run Code Online (Sandbox Code Playgroud)
我希望得到这个结果
Number   Type   Order  count
1        1      R       3
1        2      R       1
Run Code Online (Sandbox Code Playgroud)
如何按三列分组
  var result = dt.AsEnumerable()
                 .GroupBy(x => {x.Field<string>("Number"))//need to group by Type and order  also need to sum te total counts
Run Code Online (Sandbox Code Playgroud) 我正在将 PrimeNG DataTable 与 Angular 一起使用,并尝试实现类似于此StackBlitz 的内容。
如何在我尝试编辑的行上添加必填字段验证器?基本上,当他们编辑评论时,我需要确保他们输入了文本。
HTML
<p-table #dt  [value]="iToDoList" dataKey="ID"  [paginator]="true" [rowsPerPageOptions]="[10,50,100]" [rows]="10">
     <ng-template pTemplate="header">
         <tr>
            <th>ID</th>
            <th>Comment</th>
            <th>Action</th>
         </tr>
     </ng-template>
     <ng-template pTemplate="body" let-row>  
         <tr>
            <td>{{row.ID}}</td>
            <td>
                <div  *ngIf="!row.isEditable">{{row.Comment}}</div>
                <div *ngIf="row.isEditable">
                     <input type="text" [(ngModel)]="row.comment">
                </div>
            </td>
            <td><button (click)="editRow(row)">Edit</button></td>
            <td>                                
               <button (click)="save(row)">Save</button>
            </td>
          </tr>
     </ng-template>
</p-table>
Run Code Online (Sandbox Code Playgroud)
组件.ts
iToDoList: IToDoList[] = null;
ngOnInit(): void {
     this.GetToDoList(this.userID);
}
GetToDoList(ID: string) {
    this._dashboardService.getToDoList(ID)
            .subscribe(
            data => {
                this.iToDoList = data.result;
                data.map(row => {
                    row.isEditable = false;
                });    
            },
    error …Run Code Online (Sandbox Code Playgroud) 我为电话字段编写了一个自定义验证器并收到 
错误
预期验证器返回 Promise 或 Observable。
为简单起见,我只需要检查电话号码是否少于 10 个字符
html
<div class="form-group col-xs-3 col-md-3"
                                       [ngClass]="{
                                     'has-error':(ersaForm.get('phone').touched || ersaForm.get('phone').dirty ) &&
                                     !ersaForm.get('phone').valid
                                     }">
                                    <label for="phoneId" class="control-label">Phone</label><br />
                                    <p-inputMask mask="(999) 999-9999" formControlName="phone"  inputStyleClass="form-control" [style]="{'width': '100%','height':'34px'}"  id="phoneId"  placeholder="Phone (required)"></p-inputMask>
                                    <span class="help-block" *ngIf="(ersaForm.get('phone').touched || ersaForm.get('phone').dirty ) &&
                                     ersaForm.get('phone').errors">
                                        <span *ngIf="ersaForm.get('phone').errors.phonePBXCheck">
                                            invalivd Phone Number.
                                        </span>
                                    </span>
                                </div>
Run Code Online (Sandbox Code Playgroud)
TS
function phoneCheck(phone: string): ValidatorFn{
    return (c: AbstractControl): { [key: string]: boolean } | null => {
       var phoneVal = c.value;
            phoneVal = phoneVal.replace('(', '');
            phoneVal = phoneVal.replace(')', …Run Code Online (Sandbox Code Playgroud) validation typescript primeng angular angular-reactive-forms
我不知道如何在 Angular 2 中的元素内显示数据集合。
json
[
  {
    "DropdownValues": [
      {
        "ID": 1,
        "Value": "January"
      },
      {
        "ID": 2,
        "Value": "February"
      },
      {
        "ID": 3,
        "Value": "March"
      }
    ],
    "DropDownID": 1,
    "DropDownTitle": "Month",
    "IsMonth": true,
    "IsYear": false,
    "IsCompay": false,
    "IsCompanyName": false
  }
]
Run Code Online (Sandbox Code Playgroud)
我能够在调用我的服务时将其加载到界面中
export interface ITabControls {
 DropdownValues: {
                    DropDownID: number;
                    DropDownMappingID: number;
                    Value: string;
            }
            DropDownID: number;
            DropDownTitle: string;
            IsMonth: boolean;
            IsYear: boolean;
            IsCompay: boolean;
            IsCompanyName: boolean;
        }
Run Code Online (Sandbox Code Playgroud)
选项卡组件.ts
@Component({
    selector: 'tab',
    moduleId: module.id,
    templateUrl: 'tab.component.html'
})
export class …Run Code Online (Sandbox Code Playgroud) 我正在尝试按字母顺序对对象数组进行排序,为了使事情变得简单,我正在使用以下示例。在我的打字稿中,我进行拼接以从数组对象中插入和删除项目。
大批
  cars = [{
        id: 1,
        items: [{
          name: 'car1',
          description: 'this is car1 description'
        },{
          name: 'car2',
          description: 'this is car2 description'
        },{
          name: 'car3',
          description: 'this is car3 description'
        },{
          name: 'car4',
          description: 'this is car4 description'
        },{
          name: 'car5',
          description: 'this is car5 description'
        }]
   }];
Run Code Online (Sandbox Code Playgroud)
html
<p-dataView [value]="cars" [paginator]="true" [rows]="5">
  <p-header>List of Cars</p-header>
  <p-footer>Choose from the list.</p-footer>
  <ng-template let-car pTemplate="listItem">
      <p-fieldset legend="Header" *ngIf="car.id === 1" [toggleable]="true">
          <div *ngFor="let _car of car.items">
              {{_car.name}} - {{_car.description}}
          </div> …Run Code Online (Sandbox Code Playgroud)