标签: angular2-template

在Angular2中,如何在不使用RouterLinkActive的情况下单击链接时向元素添加CSS类?

我正在使用创建导航菜单

<li *ngFor="let child of children">
  <a (click)="navChanged(child.name)">
    <div> {{child.name}} </div>
  </a>
</li>
Run Code Online (Sandbox Code Playgroud)

现在我想添加class="active"到活动(点击)的child.name并且我没有使用路由.

angular2-template angular

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

Angular 2:使用ngTemplateOutlet和ngOutletContext的嵌套模板

我正在尝试使用PrimeNG的p-dataScroller构建一个通用列表组件,如下所示:

<div>
  <p-dataScroller [value]="items" ...more properties...>
    <template let-listItem>
      <div (click)="select(listItem)">
        <template [ngTemplateOutlet]="itemTemplate"
                  [ngOutletContext]="{'item': listItem, 'selected': listItem == selectedItem}"></template>
      </div>
    </template>
  </p-dataScroller>
</div>
Run Code Online (Sandbox Code Playgroud)

p-dataScroller本身使用模板传播items数组中的每个项目.
selectedItem并且select()是相应的通用列表组件的方法.在这个组件中,我这样声明itemTemplate:

 @ContentChild(TemplateRef)
 public itemTemplate: TemplateRef<any>;
Run Code Online (Sandbox Code Playgroud)

最后我以下列方式使用我的通用列表组件:

<generic-list [items]="someArray">
  <template>
    <list-item [itemType]="itemType">
      <template let-item>
        <i class ="fa" [ngClass]="{'fa-lock': item.visibility == 0,
                                   'fa-users': item.visibility == 1}"></i>
      </template>
    </list-item>
  </template>
</generic-list>
Run Code Online (Sandbox Code Playgroud)

如您所见,模板组件(list-item)本身有另一个模板!
首先,我想知道这是否存在问题(三个嵌套模板),但更重要的是,ngOutletContext似乎没有将值添加到每个模板中list-item.两者itemselected输入参数都存在于list-item组件中,但似乎没有设置它们.在调试时,Angular 2正确地将list-item组件添加为列表条目,但抛出异常,因为它缺少item输入参数AfterContentInit.有趣的是,itemType输入参数设置正确,可能是因为它不属于ngOutletContext.

我不能移动列表项组件的通用列表组件模板内,降低了复杂性,因为有几种不同类型的可以使用的物品(所有这些都具有 …

angular2-template angular

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

Angular2,如何将变量传递给克隆的模板

在 Angular2 中,我有一个模板代码,每当用户单击按钮时,我都会克隆该代码,就像在此处回答 如何在 angular2 中动态添加克隆节点(相当于 cloneNode)

我试图将一个变量传递给它,但它不起作用。怎么了?

import {Component, NgModule, ViewChild, ViewContainerRef} from '@angular/core'
import {BrowserModule} from '@angular/platform-browser'

@Component({
  selector: 'my-app',
  template: `
    <template #clone let-session>
     <div [id]="session">eps {{session}} ya</div>
    </template>

    <div #container></div>

    <div>
      <button (click)="create()">Hello</button>
    </div>
  `,
})
export class App {
  name:string;

    @ViewChild('clone') clone:any;
    @ViewChild('container', {read:ViewContainerRef}) container:any;

  constructor() {
    this.name = 'Angular2'
  }

  create(){
    let session = 'testing';
        this.container.createEmbeddedView(this.clone, {context: {$implicit: session}});
  }
}

@NgModule({
  imports: [ BrowserModule ],
  declarations: [ App ],
  bootstrap: [ App ] …
Run Code Online (Sandbox Code Playgroud)

cloning angular2-template angular

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

Angular2动态按钮,一次只能选择一个

我正在尝试创建以下UI/UX按钮:
.. [2015] [2016] [2017]

默认情况下,当前年份(在撰写时,2017年)被"选中",当用户点击"2015"时,应取消选择"2017"和"2016"(这些按钮是"互斥的")

这些按钮是从外部数据源生成的,该数据源为我提供了多年的数据:

<button *ngFor="let year of styles.years"  type="button" name="button" class="btn btn-default" id="{{year.year}}">
  {{year.year}}
</button>
Run Code Online (Sandbox Code Playgroud)

如何创建一个按钮系统,其中一个按钮被"自动选择",当选择"其他"按钮时,它会取消选择主动选择的按钮,并将现在单击的按钮设置为"已选择"?

javascript angular2-template angular2-databinding angular

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

如何显示模式验证消息?

我向模板添加了模式属性

<input class="form-control" type="text" id="elementName"
                                   [(ngModel)]="elementName" name="elementName"
                                   (input)="onElementNameChanged()" #name="ngModel" required pattern="[A-Za-z0-9_)*\S]*" >
Run Code Online (Sandbox Code Playgroud)

如何添加输入不正确时显示的消息?

像这样的东西不会工作:

<div [hidden]="!name.errors.pattern"
     class="alert alert-danger">
     Name must match pattern
</div>
Run Code Online (Sandbox Code Playgroud)

html angular2-forms angular2-template angular

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

如何在Angular2模板中打印对象属性

我是 angular2 的新手,并尝试将对象结果绑定到 html 模板。我可以使用 Observable 从 srtvice 获取数据。我也可以在控制台和模板中看到 JSON 数据。但是当我尝试从结果 json 访问属性时,它没有显示如下图所示的数据。

输出

下面是我的该组件的代码,

import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';

import { JuniorService } from '../Service/service.junior';
import { Employee } from '../../models/Employee';


@Component({
  selector: 'my-getjunior',
  template: `<h1>Details of {{id}} 
  <hr/>
  JSON :  {{Junior | json}} 
  <hr/>
  Summary :  {{junior?.summary}}</h1>`
  //templateUrl: './app/Junior/get/junior.get.html'
})
export class JuniorGet implements OnInit
 {

errorMessage: string;
Junior: Employee;
id: number;
private sub: any;

  constructor (private juniorService: JuniorService, private route: …
Run Code Online (Sandbox Code Playgroud)

angularjs-templates angular2-forms angular2-template angular2-services angular

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

在 Angular 2 模板的表格中显示一行及其子行

我在我的项目中使用 Angular 2。我遇到了一个场景,其中我有一个项目列表,一个项目可能有子项目。我必须显示表格中的所有项目(包括子项目)。我对 tr 标签中的每个项目列表使用 *ngFor 。但是,由于我还必须显示子项目,因此我无法通过一个 *ngFor 来执行此操作。我可以采用什么方法来实现这一目标?正在寻找您的建议。请帮帮我。这是我想要显示的内容。

 items= [
    { name : 'bag', subitems: [{ name : 'pen' }, { name : 'pen1' }] },
    { name : 'chair' }
  ];
Run Code Online (Sandbox Code Playgroud)

该表应具有以下行:

 bag
 pen
 pen1
 chair
Run Code Online (Sandbox Code Playgroud)

请帮忙。

angular2-template ngfor angular

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

找不到变量:数字

错误信息

declare let numeral:any;

@Component({     
      //moduleId: module.id,     
      selector: 'app-dashboard',   
      templateUrl: './dashboard.component.html',     
      styleUrls:  hboard.component.css' 
})
Run Code Online (Sandbox Code Playgroud)

我正在使用Angular2 + Webpack3.

这是我的webpack.config.ts和tsconfig.json.

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');


function webpackConfig(options: EnvOptions = {}): WebpackConfig {

  return {
      cache: false,

      entry: {
          polyfills: './src/polyfills',
          vendor:       './src/vendor',
          main:           './src/main'
      },

      output: {
          path: path.join(__dirname, '/public'),
          filename: '[name].bundle.js',
          sourceMapFilename: '[name].map',
          chunkFilename: '[id].chunk.js'
      },

      module: {
          loaders: [


               { test:/\.ts$/,loaders:['awesome-typescript-loader','angular2-template-loader']},
               { test: /\.json$/,loader:'json-loader'},
               { test: /\.html$/, loader:'html-loader'},
               { test: …
Run Code Online (Sandbox Code Playgroud)

webpack angular2-template angular webpack-3

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

ng2-file-upload:文件 maxFileSize 在 Angular 2 中使用打字稿限制为小于 1MB

这是我的代码。我无法上传大小超过 1 mb 的任何文件,但我已将 maxFileSize 设置为 50mb,请帮忙,我做错了什么?

@Component({
    moduleId: module.id,
    //define the element to be selected from the html structure.
    selector: 'NeedAnalysisConsult',
    //location of our template rather than writing inline templates.
    templateUrl: 'need-analysis-consultation.component.html',

})
export class NeedAnalysisConsultationComponent implements OnInit {
    model:any={};
    consultationDate: Date;
    organisation: string;
    devCode:String;
    maxFileSize = 50 * 1024 * 1024;


     //declare a property called fileuploader and assign it to an instance of a new fileUploader.
    //pass in the Url to be uploaded to, and pass the itemAlais, …
Run Code Online (Sandbox Code Playgroud)

typescript angular2-template ng2-file-upload

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

如何在 Angular 的 innerHTML 中使用 ng-template

有人可以帮助我,如何在innerHTML 标签中使用ng-template,

Stackblitz 演示:https ://stackblitz.com/edit/angular-xgnnj4

我想做的是,

在组件 HTML 中

<div [innerHTML]="htmlString"><div>
Run Code Online (Sandbox Code Playgroud)

在组件 TS

@ViewChild('dynamicComponent', { static: false, read: ViewContainerRef }) myRef: ViewContainerRef;

htmlString = `<ng-template #dynamicComponent></ng-template>`;

  ngAfterViewInit(): void {
    const factory = this.componentFactoryResolver.resolveComponentFactory(CommentComponent);
    const ref = this.myRef.createComponent(factory);
    ref.changeDetectorRef.detectChanges();
  }
Run Code Online (Sandbox Code Playgroud)

我真的需要以这种方式实现,因为我想从 API 获取 HTML 内容并使用该值动态显示 HTML 内容

当我收到错误时无法读取未定义的属性“createComponent”,但如果我将其放在innerHTML 之外,它可以完美运行

我已经浏览了https://angular.io/guide/dynamic-component-loader但它对我的场景没有帮助

innerhtml angular2-template ng-template angular angular-dynamic-components

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

如何在 Angular 中根据屏幕尺寸设置不同的 css 类?

我的 Angular 应用程序中有这个浮动按钮,

  <button [ngClass]="{
  'mdc-fab--extended': extendedClass,
  'mdc-fab--mini': miniClass
}" class="mdc-fab mdc-fab--touch    ">
<div class="mdc-fab__ripple"></div>
<span class="material-icons mdc-fab__icon">mail</span>
<!-- <span class="floating-span">My Invite Link</span> -->
<div class="mdc-fab__touch"></div>
Run Code Online (Sandbox Code Playgroud)

当屏幕尺寸为 768px 或更低时,我需要将 mdc-fab--extended className 更改为 mdc-fab--mini 吗?我可以做什么来实现这个功能?谢谢

我已经尝试过,但课程没有被删除/添加

    if (window.innerWidth < 768) {
  this.miniClass = true;
  this.extendedClass = false;
} else {
  this.miniClass = false;
  this.extendedClass = true;
}
Run Code Online (Sandbox Code Playgroud)

ng-class angular2-template angular

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

Http获取响应更新HTML,但在控制台中给出了未定义的错误

当我使用HttpClient使用响应Obj 更新html时,它会更新值,但会出现多个错误。

文件名-auth-service.ts。

    import { any } from 'codelyzer/util/function';
    import { Injectable } from '@angular/core';
    import { HttpClient } from '@angular/common/http';

    @Injectable()
    export class AuthService {

      constructor(private httpClient: HttpClient) { }
      get() {
        return this.httpClient.get<any>('/capi/v2/users/me', {
          observe: 'body',
          responseType: 'json'
        });
      }
    };
Run Code Online (Sandbox Code Playgroud)

文件名-dashboard.component.ts

    import { AuthService } from './../../services/api/auth-service';

    import { Component, Injectable, OnInit } from '@angular/core';

    @Component({
        selector: 'app-dashboard',
        templateUrl: './dashboard.component.html'
    })

    @Injectable()
    export class DashBoardComponent implements OnInit {
        user;
        constructor(private authService: AuthService) {}; …
Run Code Online (Sandbox Code Playgroud)

angular2-template angular2-services angular angular4-httpclient

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

Angular:ngFor项目,并为最后一个项目以外的所有项目附加一个char

我循环我的数据列表,并在span中显示在视图中:

 <span  *ngFor="let d of myData"> {{d.name}} ,</span>
Run Code Online (Sandbox Code Playgroud)

如您所见,我在每个项目的末尾添加逗号' '以获取一致的视图

这导致我的外观如下:

AAA,BBB,CCC,DDD,
Run Code Online (Sandbox Code Playgroud)

我的问题是**我要自动删除的最后一个逗号。

建议?

typescript angular2-template angular angular5 angular6

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