标签: angular-template

如何在 Angular 6 中选择原生元素的 ContentChild?

我有一个使用内容投影的组件。

<ng-content select="button">
</ng-content>
Run Code Online (Sandbox Code Playgroud)

我想在我的组件中做这样的事情:

@ContentChild('button') button: ElementRef;
Run Code Online (Sandbox Code Playgroud)

但是,当我检查时this.button,它undefined同时在ngAfterViewInit和 中ngAfterContentInit

如果我的内容子元素是原生元素而不是自定义组件,我该如何选择它?

angular-template angular-directive angular angular6

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

Angular Material - 如何设置 mat-h​​orizo​​ntal-content-container padding 0

我使用角材料步进器。我需要在移动视图上设置填充 0。在开发人员控制台上,我可以通过更改.mat-horizontal-content-container. 但是当我添加时它不起作用.mat-horizontal-content-container{padding:0 !important;}这个问题有什么解决方案吗?

css angular-template angular-material angular angular-material-7

6
推荐指数
2
解决办法
2828
查看次数

cdkPortal 与 ngTemplateOutlet 有何不同

为什么要在 Angular 中的内置指令ngTemplateOutletngComponentOutlet 上使用cdkPortal。它们不是都提供相同的功能吗?CDK 门户中是否有没有内置指令的特定功能?

angular-template angular angular-cdk

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

组件upperCaseComponent模板出错

它显示模板有错误,

错误:

  • 属性“结果”是私有的,只能在“upperCaseComponent”类中访问
  • 属性“mymessage”未在“upperCaseComponent”中声明

我的html

<input type="text" [(ngModel)]="mymessage"
<button (click)="clickMe()"> send</button>
<br><br>
<h1>{{result | json}}</h1>
Run Code Online (Sandbox Code Playgroud)

我的组件.ts

import {Component} from "@angular/core";
export class MyComponent {
private result: any;
constructor()
}
Run Code Online (Sandbox Code Playgroud)

angularjs angular-template angular

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

将 ng-template 传递给子组件

我创建了一个可重用的组件来呈现表格。它目前适用于基本表格,但在某些情况下我希望能够自定义表格中的单个列/单元格。

这是我在父组件中使用的代码:

<!-- PARENT TEMPLATE -->
<app-table
  [headers]="headers"
  [keys]="keys"
  [rows]="rows">
</app-table>

// PARENT COMPONENT
public headers: string[] = ['First', 'Last', 'Score', 'Date'];
public keys: string[] = ['firstName', 'lastName', 'quizScore', 'quizDate'];
public rows: Quiz[] = [
  { 'John', 'Doe', 0.75, '2020-01-03T18:18:34.549Z' },
  { 'Jane', 'Doe', 0.85, '2020-01-03T18:19:14.893Z' }
];
Run Code Online (Sandbox Code Playgroud)

我在子组件中使用的代码:

<!-- CHILD TEMPLATE -->
<table>
  <thead>
    <tr>
      <td *ngFor="let header of headers">
        {{ header }}
      </td>
    </tr>
  </thead>
  <tbody>
    <tr *ngFor="let row of rows">
      <td *ngFor="let key of keys">
        {{ render(key, …
Run Code Online (Sandbox Code Playgroud)

angular-template angular-components angular

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

Rails 4找不到文件'angular-rails-templates'

我正在按照这个教程:https://thinkster.io/angulartutorial/angular-rails/,一切顺利,直到我必须在rails资源管道javascripts中安排我的角度代码和文件夹的部分,并使用宝石的角度-rails-template'(https://github.com/pitr/angular-rails-templates)来联系他们.

我已经通过Gemfile安装了gem,即使我在application.js中需要该文件,我也会收到"无法找到文件'angular-rails-templates'"错误:

//= require angular
//= require angular-rails-templates
//= require angular-ui-router
//= require_tree .
Run Code Online (Sandbox Code Playgroud)

有什么建议?

ruby-on-rails angularjs ruby-on-rails-4 angular-template

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

Angular2表单ControlGroup,其中包含未定义的Control数

如何使用Angular2管理一个包含未定义字段数的表单?

在我的情况下,我需要创建一个用户可以添加和删除一些文件块的地方.它就像一个地址簿,用户可以在其中添加一个或十个地址.每个地址都有一些字段,如街道,街道号码等.

我看起来像这样:

let address = fb.group({
        street: fb.control(null, Validators.required),
        streetNumber fb.control(null, Validators.required)
    });

this.userForm = fb.group({
        name: fb.control(null, Validators.required),
        firstName: fb.control(null, Validators.required),
        address: fb.group({
            1: address
            })
        });
Run Code Online (Sandbox Code Playgroud)

我真的不知道如何在模板中管理它.

我试着在模板中写一些这样的东西,但很明显,它不起作用......

<form [ngFormModel]="userForm">
<input type="text" ngControl="name" #name="ngForm"/>
<input type="text" ngControl="firstName" #firstName="ngForm"/>

<div *ngFor="#address of userForm.controls['address'].controls">
    <input type="text" ngControl="street" #street="ngForm"/>
    <input type="text" ngControl="streetNumber" #streetNumber="ngForm"/>
</div>
Run Code Online (Sandbox Code Playgroud)

编辑

为了更好的解释,我做了一个Plunker http://plnkr.co/edit/ffYe1479WnxYOQrbxwLF?p=preview

angular-template angular2-forms angular

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

角度可重用模板

是否有可能写出可重用的ng-template?我的很多组件使用完全相同ng-template.
例如:

<kendo-grid>
    <kendo-grid-column field="group">
        <ng-template kendoGridEditTemplate let-dataItem="dataItem" let-formGroup="form">
            <kendo-dropdownlist #listGroups [data]="groups"
                                textField="title"
                                valueField="id"
                                [valuePrimitive]="true"
                                [filterable]="true"
                                [formControl]="form.get('groupId')">
            </kendo-dropdownlist>
        </ng-template>
    </kendo-grid-column>
</kendo-grid>
Run Code Online (Sandbox Code Playgroud)

我不想在我的所有组件中重复这个模板和逻辑.我可以编写自定义组件并将此代码缩小为:

<kendo-grid>
    <kendo-grid-column field="group">
        <ng-template kendoGridEditTemplate let-dataItem="dataItem" let-formGroup="form">
            <my-custom-component [formControl]="form.get('groupId')">
            </my-custom-component>
        </ng-template>
    </kendo-grid-column>
</kendo-grid>
Run Code Online (Sandbox Code Playgroud)

但我想做更多:

<kendo-grid>
    <kendo-grid-column field="group">
        <ng-template [ngTemplateOutlet]="templateFromAnotherSource">
        </ng-template>
    </kendo-grid-column>
</kendo-grid>
Run Code Online (Sandbox Code Playgroud)

我发现这个线程这个描述ngTemplateOutlet,而不是如何共享多个组件之间的模板.

angular-template angular2-template kendo-ui-angular2 angular

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

Angular 2 - ng-bootstrap如何为其NgbRadio指令提供NgbRadioGroup和NgbButtonLabel?

这是标签代码:

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

@Directive({
  selector: '[ngbButtonLabel]',
  host:
      {'[class.btn]': 'true', '[class.active]': 'active', '[class.disabled]': 'disabled', '[class.focus]': 'focused'}
})
export class NgbButtonLabel {
  active: boolean;
  disabled: boolean;
  focused: boolean;
}
Run Code Online (Sandbox Code Playgroud)

这是单选按钮代码:

import {Directive, forwardRef, Input, Renderer2, ElementRef, OnDestroy} from '@angular/core';
import {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';

import {NgbButtonLabel} from './label';

const NGB_RADIO_VALUE_ACCESSOR = {
  provide: NG_VALUE_ACCESSOR,
  useExisting: forwardRef(() => NgbRadioGroup),
  multi: true
};

let nextId = 0;

/**
 * Easily create Bootstrap-style radio buttons. A value of a selected button is bound …
Run Code Online (Sandbox Code Playgroud)

hierarchy angular-template angular-directive ng-bootstrap angular

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

Angular 5:请求不同布局的多种语言

我有Angular 5一个默认语言法语的应用程序.我必须添加需要更改全局布局的阿拉伯语(必须从右到左显示内容......).

我想知道是否有一种方法只使用一个组件并进行条件模板选择.例如 :

--my-compenent_ar.html
--my-compenent_fr.html
--my-component.ts

And in my @Component({
    moduleId: module.id,
    templateUrl: ==> condition here
    styleUrls: ['./sign-in.component.scss']
})
export class MyComponent
Run Code Online (Sandbox Code Playgroud)

当前版本的Angular(5)本身不支持这种情况.

有什么好办法吗?


我想要做的是

--my-compenent_ar.html
--my-compenent_fr.html
--my-component.ts
--my-component.ar.ts

@Component({
    moduleId: module.id,
    templateUrl: './my-compenent_fr.html'
    styleUrls: ['./sign-in.component.scss']
})
export class MyComponent {
....
}

@Component({
    moduleId: module.id,
    templateUrl: './my-compenent_ar.html'
    styleUrls: ['./sign-in.component.scss']
})
export class MyComponentAR extends MyComponent {}
Run Code Online (Sandbox Code Playgroud)

使用此配置,FR语言环境将导航到MyComponent并定位ARMyComponentAR.

这很冗长.你有干净的方法吗?

locale angular-template angular

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