我正在开发一个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循环.那么如何解决这个问题.请帮忙.
我正在做一个由后端+前端组成的7+项目。现在,我面临一个需求,我需要再创建一个包含前端+后端的项目。但是存在一些可重用的前端代码,可以在两个应用程序之间重用。
我的个人结构
需求
因此,当我阅读有关图书馆的概念时,我会发现
1)创建两个前端应用程序并共享一个公共库
因为我使用通过Visual Studio创建的(如图所示asp.net角模板项目,我不能采取这种方法在这里)。两个应用程序(项目一和项目二)具有自己的FE + BE。因此,我无法将两个FE应用程序分组到同一文件夹中,并使它们使用共享库。
2)创建库并上传到npm并用作依赖项
我不能采用这种方法,因为代码是专有的,不能在网络外部共享。此外,没有本地公司npm注册表可使用公司npm。
我知道可以使用库概念来完成。但是我不了解如何在多个应用程序中完成此操作。有人可以提供解决方案吗?谢谢 !
我正在开发一个带有角度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").中止连接.
可能是什么问题.修复是什么?请帮忙.任何帮助,将不胜感激.谢谢.
嗨,我正在使用 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) 我正在构建一个用户可以登录的网站.我正在使用materialize-css和Angularjs作为前端和java-hibernate后端(在我的情况下使用spring不是一个选项)
用户可以是管理员,经理或员工.我想要不同的登录角色的不同视图,如下所示.
我的问题是:
这是一个很好的方法来重定向到3个不同的index.html或者页面可以根据角色动态加载.如果动态可以完成,如何?我读过关于使用ng-show和ng-if.但我不明白如何设计具有正确对齐的页面以及所有这些.请帮我正确回答,将我重定向到任何有用的资源.任何帮助,将不胜感激.谢谢.
我正在做一个有角度的应用程序,我必须点击一个休息终点并下载作为响应发送的文件,但我不知道如何去做.我有如下的响应头
内容处置:附件; 文件名= "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文件?请帮忙.我被卡住了.
我在我的一个项目中使用 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)
我想要做的是为请求设置一个自定义标头,以便我可以附加服务器所需的所有标头。有什么方法可以为此编写一个通用拦截器,这样我就不必重复这些行。请帮忙。任何帮助表示赞赏。
我正在使用 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
我正在尝试将 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)
我使用角度材质UI在角度2中创建了模态对话框.App有两个按钮,当我们点击任何按钮时,对话框应该打开.我可以在按钮单击时打开模态对话框,但是当我们连续点击按钮时会打开多个对话框.我们如何只打开一个对话框并限制应用程序打开另一个对话框(如果已存在).
以下是APP链接
angular ×7
javascript ×4
angular6 ×2
angular7 ×2
angular5 ×1
angularjs ×1
css ×1
dialog ×1
fullcalendar ×1
html ×1
java ×1
jersey ×1
tomcat ×1
ui-calendar ×1