小编Vik*_*iya的帖子

动态计算子组件的高度

我正在开发一个Angular应用程序,我正面临一些问题.

我处于这样一种情况,我必须在父容器组件中加载多个子组件.子组件一个接一个地加载.我想加载'n'个组件,直到滚动可见,这样我就可以处理子组件的延迟加载.截至目前,我正在尝试使用以下条件.

while (window.screen.height > 
   this.elementRef.nativeElement.getBoundingClientRect().height) 
   {
      this.child= this.childSet.slice(0, this.count+1);
   }
Run Code Online (Sandbox Code Playgroud)

和html代码如下

<child*ngFor="let child of childSet" [value]="child " [column-size]="child .size ? child .size : 12"></child>
Run Code Online (Sandbox Code Playgroud)

但它在无限循环中进行,我不知道为什么,但我猜视图的渲染速度不如while循环.那么如何解决这个问题.请帮忙.

angular2-template angular

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

在多个项目中共享一个角度库

我正在做一个由后端+前端组成的7+项目。现在,我面临一个需求,我需要再创建一个包含前端+后端的项目。但是存在一些可重用的前端代码,可以在两个应用程序之间重用。

我的个人结构

这里

需求

这里

因此,当我阅读有关图书馆的概念时,我会发现

1)创建两个前端应用程序并共享一个公共库

因为我使用通过Visual Studio创建的(如图所示asp.net角模板项目,我不能采取这种方法在这里)。两个应用程序(项目一和项目二)具有自己的FE + BE。因此,我无法将两个FE应用程序分组到同一文件夹中,并使它们使用共享库。

2)创建库并上传到npm并用作依赖项

我不能采用这种方法,因为代码是专有的,不能在网络外部共享。此外,没有本地公司npm注册表可使用公司npm。

我知道可以使用库概念来完成。但是我不了解如何在多个应用程序中完成此操作。有人可以提供解决方案吗?谢谢 !

angular angular6 angular-builder angular7

10
推荐指数
3
解决办法
491
查看次数

服务器已发送事件在Chrome中无效

我正在开发一个带有角度4和java的Web应用程序.我正在使用服务器发送的事件将一些文本数据发送到前端.在后端,我使用的是运动衫,这是我的后端代码

eventOutput.write(new OutboundEvent.Builder()
       .id(decodedToken)
       .name("responseBody")
       .data(String.class, respBody.toString()).build());
Run Code Online (Sandbox Code Playgroud)

前端我使用角4和代码看起来像

var evtSource = new EventSource("url");
 source.addEventListener('eventName', (event) => {
    console.log(event);
});
Run Code Online (Sandbox Code Playgroud)

在Mozilla Firefox中一切正常.当我使用带有tomcat和windows的chrome时一切正常.但是使用tomcat + linux和chrome,我在console.as中看到了错误

EventSource的响应有一个不是UTF-8的字符集("iso-8859-1").中止连接.

可能是什么问题.修复是什么?请帮忙.任何帮助,将不胜感激.谢谢.

javascript java tomcat google-chrome jersey

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

使用 Observable.toPromise() 处理全局错误

嗨,我正在使用 angular 5,我正在为它编写一个全局处理程序,如下所示。

@Injectable()
export class ErrorsHandler implements ErrorHandler {
  constructor(
    private injector: Injector,
  ) { }


  handleError(error: Error | HttpErrorResponse) {
    const router = this.injector.get(Router);
    const zone = this.injector.get(NgZone);
    console.log('Here')
    console.log(error)

    if (error instanceof HttpErrorResponse) {

      // Client Error Happend
      zone.run(() => router.navigate(['/error'], { queryParams: { error: JSON.stringify(error) } }))

    } else {
      // Log the error anyway
      router.navigate(['/error'], { queryParams: { error: JSON.stringify({ message: 'Failed' }) } });
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

在 Observable 世界中一切正常,即如果我执行失败的 http 调用,如下所示

fireServerError() { …
Run Code Online (Sandbox Code Playgroud)

javascript angular angular5

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

基于角色的动态布局

我正在构建一个用户可以登录的网站.我正在使用materialize-css和Angularjs作为前端和java-hibernate后端(在我的情况下使用spring不是一个选项)

用户可以是管理员,经理或员工.我想要不同的登录角色的不同视图,如下所示.

对于管理员 在此输入图像描述

经理 在此输入图像描述

和员工 在此输入图像描述

我的问题是:

这是一个很好的方法来重定向到3个不同的index.html或者页面可以根据角色动态加载.如果动态可以完成,如何?我读过关于使用ng-showng-if.但我不明白如何设计具有正确对齐的页面以及所有这些.请帮我正确回答,将我重定向到任何有用的资源.任何帮助,将不胜感激.谢谢.

html css angularjs

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

下载内容类型为Content-Type的文件:multipart/mixed

我正在做一个有角度的应用程序,我必须点击一个休息终点并下载作为响应发送的文件,但我不知道如何去做.我有如下的响应头

内容处置:附件; 文件名= "Config.zip" 内容类型:多部分/混合;边界= Boundary_25_1816124633_1519993185650 MIME-版本:1.0传送编码:分块

并且响应看起来像

--Boundary_25_1816124633_1519993185650内容类型:application/json

{"config":[{},{},{}]} --Boundary_25_1816124633_1519993185650内容类型:application/octet-stream

PKMÛJAä;%RecurrenceEvent_CreateContract_1.jsoníYKoãF¾ÈxÝ0è÷M7MbL&ÝÝK0Í|CD¬1ðß(J¤HÙ²¼yV'»ÙU¬®úªú«â€œ«åºv~\Í~ùöýw³Ù,È«ù

编辑

这是我的http电话,它指向后端

return this.http.get(url).map(response => {
// TODO
});
Run Code Online (Sandbox Code Playgroud)

如何下载附加的zip文件?请帮忙.我被卡住了.

javascript angular

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

添加自定义标头到表单提交

我在我的一个项目中使用 Angular 4,我有一种动态创建表单元素并提交它的方法

postToUrl(path, params, method) {
        method = method || 'post';
        let form = document.createElement('form');
        form.setAttribute('method', method);
        form.setAttribute('action', path);
        for (let key in params) {
            if (params && params.hasOwnProperty(key)) {
                let hiddenField = document.createElement('input');
                hiddenField.setAttribute('type', 'hidden');
                hiddenField.setAttribute('name', key);
                hiddenField.setAttribute('value', params[key]);
                form.appendChild(hiddenField);
            }
        }
        document.body.appendChild(form);
        form.submit();
        setTimeout(() => {
            document.body.removeChild(form);
        }, 2000);
    }
Run Code Online (Sandbox Code Playgroud)

我想要做的是为请求设置一个自定义标头,以便我可以附加服务器所需的所有标头。有什么方法可以为此编写一个通用拦截器,这样我就不必重复这些行。请帮忙。任何帮助表示赞赏。

javascript javascript-objects angular angular4-httpclient

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

从 json 创建动态表单时出错找不到名称为“数据”的控件

我正在使用 angular 7 应用程序,并且正在编写一个通用的动态表单创建器。我正在使用反应式表单并ng-template and <ng-container *ngTemplateOutlet>递归显示表单元素。项目的代码可以在这里看到。

但我面临以下错误

ERROR Error: Cannot find control with name: 'data'
    at _throwError (forms.js:1775)
    at setUpControl (forms.js:1683)
    at FormGroupDirective.push../node_modules/@angular/forms/fesm5/forms.js.FormGroupDirective.addControl (forms.js:4532)
    at FormControlName.push../node_modules/@angular/forms/fesm5/forms.js.FormControlName._setUpControl (forms.js:5030)
    at FormControlName.push../node_modules/@angular/forms/fesm5/forms.js.FormControlName.ngOnChanges (forms.js:4980)
    at checkAndUpdateDirectiveInline (core.js:9239)
    at checkAndUpdateNodeInline (core.js:10507)
    at checkAndUpdateNode (core.js:10469)
    at debugCheckAndUpdateNode (core.js:11102)
    at debugCheckDirectivesFn (core.js:11062)
Run Code Online (Sandbox Code Playgroud)

但是如果我看到我的 formGroup 对象,我可以看到一个带有数据的控件作为控件的名称,如下所示。

在此处输入图片说明

我在做什么错误?请帮忙。

问题的重现是Here stackblitz

angular angular-reactive-forms angular-forms angular6 angular7

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

禁止在周末创建活动

我正在尝试将 Fullcalendar 用于我的一份休假申请。我启用了选择选项,以便用户可以选择日期并申请休假。但我想禁用周末被选择,即当用户单击周末时它应该发出警报。可以实现吗?

我的代码

this.calendarOptions = {
    height:450,
    defaultDate: moment(new Date(),'YYYY-MM-DD'),
    editable: false,
    stick:true,
    selectable:true,
    eventLimit: false, // allow "more" link when too many events
    events: this.eventList,
    header: {
        left: 'month basicWeek basicDay',
        center: 'title',
        right: 'today prev,next'
    },
    displayEventTime: false,

    select: (start, end, allDay) => {
        this.startDate=moment(start).format("YYYY-MM-DD");
        this.endDate=moment(end).format("YYYY-MM-DD");   
        $('.first.modal').modal('show');
    },
    dayRender: (date, cell)=> {
    //logic
    },
    selectOverlap:false,
};
Run Code Online (Sandbox Code Playgroud)

fullcalendar ui-calendar fullcalendar-2

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

如何控制打开多个对话框

我使用角度材质UI在角度2中创建了模态对话框.App有两个按钮,当我们点击任何按钮时,对话框应该打开.我可以在按钮单击时打开模态对话框,但是当我们连续点击按钮时会打开多个对话框.我们如何只打开一个对话框并限制应用程序打开另一个对话框(如果已存在).

以下是APP链接

Angular 2 App

dialog angular-material angular

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