小编Him*_*ora的帖子

有条件地在Angular 4中应用click事件

是否可以根据附加的点击处理程序在模板中定义条件?

例如,我能得到的最接近的是评估click方法条目的条件.

<a class='user' (click)=" isOverflown? menu.toggle($event): '' "></a>
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以避免在标志isOverflown为假的情况下完全绑定到click事件?

此外,我不想ng-if在元素上使用并复制模板.即:创建一个具有click绑定的元素,然后创建另一个不绑定的元素,然后使用它来显示/隐藏它们ng-if

angular

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

在项目'my-lib'中找不到配置'生产'

我正在使用Angular 6.1.0构建一个库

  • ng new lib-demo
  • ng generate library my-lib

所有文章建议使用如下--prod标志运行库的构建:

ng build my-lib --prod
Run Code Online (Sandbox Code Playgroud)

但是,这会引发错误

Configuration 'production' could not be found in project 'my-lib'.
Run Code Online (Sandbox Code Playgroud)

这可能是正确的,因为当我查看angular.jsonproduction build configuration时,库项目中没有a的定义.它仅适用于应用程序项目.

以下是我在使用的库项目的构建配置下所拥有的内容 ng-packagr

"build": {
      "builder": "@angular-devkit/build-ng-packagr:build",
      "options": {
        "tsConfig": "projects/my-lib/tsconfig.lib.json",
        "project": "projects/my-lib/ng-package.json"
      }
    }
Run Code Online (Sandbox Code Playgroud)

所以这里的问题是,--prod不再需要标志,只是运行ng build m-lib会生成prod构建?

看看dist文件夹的内容看起来如此,但我不是百分百肯定.如果有人可以验证这一点,那就太好了.

angular angular-library ng-packagr

14
推荐指数
2
解决办法
8669
查看次数

重写primeNg的DataTable组件时模板解析错误

我想覆盖DataTable组件的模板,primeng这就是我的代码的样子:

我-datatable.component.ts

import { Component, OnInit, ElementRef, Renderer2, ChangeDetectorRef } from '@angular/core';
import { DataTable, DomHandler } from 'primeng/primeng';
import { ObjectUtils } from '../../../../node_modules/primeng/components/utils/ObjectUtils'
import { ColumnHeaders } from '../../../../node_modules/primeng/components/datatable/datatable'

@Component({
  selector: 'my-datatable',
  templateUrl: './my-datatable.component.html',
  styleUrls: ['./my-datatable.component.scss']    
})
export class MyDatatableComponent extends DataTable {

    constructor(el: ElementRef, domHandler: DomHandler, renderer: Renderer2, changeDetector: ChangeDetectorRef, objectUtils: ObjectUtils) { 
        super(el, domHandler, renderer, changeDetector, objectUtils);
        console.log('MyDatatableComponent');
    }

}
Run Code Online (Sandbox Code Playgroud)

my-datatable.component.html,此文件与基本组件具有相同的模板.想法是先运行然后进行修改

<div [ngStyle]="style" [class]="styleClass" [style.width]="containerWidth" [ngClass]="{'ui-datatable ui-widget':true,'ui-datatable-reflow':responsive,'ui-datatable-stacked':stacked,'ui-datatable-resizable':resizableColumns,'ui-datatable-scrollable':scrollable}">
  <div class="ui-datatable-loading ui-widget-overlay" *ngIf="loading"></div> …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-directive angular2-directives angular2-template primeng

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

ngIf - 否则对两个ngIf条件

请考虑以下代码示例:

<div *ngIf="condition; else elseBlock">
    <!-- markup here --> 
</div>
<ng-template #elseBlock>
     <div>
         <!-- additional markup here -->
     </div> 
</ng-template>
Run Code Online (Sandbox Code Playgroud)

我可以实现相同功能的另一种方法是:

<div *ngIf="condition">
    <!-- markup here --> 
</div>
<div *ngIf="!condition">
     <!-- additional markup here -->
</div>
Run Code Online (Sandbox Code Playgroud)

我想知道应该使用这两种方式中的哪种方式的具体原因以及原因?

angular-ng-if angular2-template angular

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

固定定位元件的 100vh 替代方案?

我有一个div (top navigation)嵌套在flex容器内的。当top-nav展开时,我希望它占据视口的整个高度。我知道这可以通过设置高度来实现,100vh但并未得到广泛支持。所以,我需要一种更传统的方式来实现这一点。

htmlbody有一个height 100%,但该视图的内容溢出,我可以滚动页面。

我现在拥有的是:

.top-nav .top-nav-links-wrapper {
    position: fixed;
    width: 100%;
    background-color: #fff;
    top: 50px;
    left: 0;
    height: 100%;        
}
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这一点(除了将高度设置为100vh)?

html javascript css

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