为什么我的DataHandlerService中的服务(this.loggerService)在注入时未定义?我认为依赖注入可以解决这个问题.我的loggerService适用于其他服务.请帮我意识到我哪里出错了.我的DataHandlerService代码如下:
import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import { LoggerService } from './logger.service';
@Injectable()
export class DataHandlerService
{
constructor(private loggerService: LoggerService)
{
}
extractData(res: Response)
{
let body = res.json();
return body || {};
}
handleHttpError(error: any)
{
let errMsg = (error.message) ? error.message : error.status ? `${error.status} - ${error.statusText}` : 'Server error';
if (errMsg && this.loggerService) //Why is this.loggerService always undefined?
{
this.loggerService.error(errMsg);
}
return Observable.throw(errMsg); …Run Code Online (Sandbox Code Playgroud) 我使用Visual Studio 2017并开发了两个Angular 2应用程序.第一个是纯Angular 2,没有后端代码(数据来自wcf服务).第二个是在MVC应用程序(.net 4.6)中托管的Angular 2 SPA应用程序.它们都很好用,我可以在VS2017中运行和编辑它们而没有任何问题.部署到IIS服务器时出现问题.目前,我正在使用gulp将node_modules目录中的组件捆绑到.js文件中.然后,我手动将应用程序的所有文件(包括gulp捆绑文件)复制到服务器.这是一个艰苦的过程,我想找到一个更好的方法.我希望Visual Studio能够提供模板来创建上述两种类型的角度2应用程序,并发布功能以捆绑应用程序,包括点击按钮所需的node_module组件但却感到失望.尽可能接近这个功能的最佳选择是什么?请帮忙.
我正在尝试在Angular 2中创建集中式异常处理(对于所有代码而不仅仅是observable),这样如果存在未处理的错误,它将不会使应用程序崩溃但会记录它.目前,如果存在未处理的异常,我的应用程序将无法响应,我必须重新加载它.我创建了一个错误处理程序,如下所示:
import { NgModule, ErrorHandler } from '@angular/core';
export class AppErrorHandler implements ErrorHandler
{
rethrowError = false;
handleError(error: any)
{
}
}
Run Code Online (Sandbox Code Playgroud)
未处理的错误会转到handleError,但似乎是因为我的应用程序停止工作而被重新抛出.请帮忙.
我有一个使用Kendo Angular Grid控件的Angular 4.10应用程序.我正在使用外部编辑.我创建了FormGroup,如下所示:
this.editForm = new FormGroup({
'Id': new FormControl({ value: 0, disabled: true }),
'Name': new FormControl("", Validators.compose([Validators.required, Validators.maxLength(30)])),
'BlindName': new FormControl({ value: "" }, Validators.compose([Validators.required, Validators.maxLength(30)])),
'UnitText': new FormControl(0),
'IsFromBsp': new FormControl(true),
'Disabled': new FormControl(false),
'SortOrder': new FormControl(0, Validators.compose([Validators.required, Validators.pattern('\\d')]))
});
Run Code Online (Sandbox Code Playgroud)
我想要做的是根据值IsFromBsp为BlindName字段设置禁用状态.就像是:
'BlindName': new FormControl({ value: "", disabled: this.IsFromBsp }, Validators.compose([Validators.required, Validators.maxLength(30)])),
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这个目标?请告诉我.谢谢
我有一个使用 signalR 的角度应用程序。它托管在 .NET Core 3.1 应用程序中。升级到 Angular 9 后,signalR 不再有效。在 Angular 8 中一切正常。自更新以来,我一直收到类似的错误
404 错误:无法完成与服务器的协商
无法启动连接
我正在使用 MessagePackHubProtocol。在package.json文件中,我有以下包:
"@microsoft/signalr": "3.1.2",
"@microsoft/signalr-protocol-msgpack":"3.1.2"
Run Code Online (Sandbox Code Playgroud)
在 .NET 核心我有包:
Microsoft.AspNetCore.SignalR.Common 3.1.2 Microsoft.AspNetCore.SignalR.Protocols.MessagePack 3.1.2
Run Code Online (Sandbox Code Playgroud)
我使用的 Typescript 版本是 v3.7.5。我启用了 SSL。
我尝试按照这篇文章中的说明添加 CORS,并且还尝试将以下选项添加到我的客户端应用程序中。
"@microsoft/signalr": "3.1.2",
"@microsoft/signalr-protocol-msgpack":"3.1.2"
Run Code Online (Sandbox Code Playgroud)
不幸的是,两者都不起作用。
启动.cs:
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
using Microsoft.AspNetCore.Server.IISIntegration;
using Microsoft.AspNetCore.SpaServices.AngularCli;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.Hosting;
using System.IO;
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration …Run Code Online (Sandbox Code Playgroud) 我有一个.net Core 2.1 MVC应用程序,它承载一个Angular 6应用程序.我使用的是Visual Studio 2017 15.7.3.我正在尝试设置Windows身份验证但遇到问题.我按照文档和我的Program.cs和Startup.cs如下:
Program.cs中:
using Microsoft.AspNetCore.Server.HttpSys;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Logging;
using NLog.Web;
using System;
namespace CoreIV_Admin_Core
{
public class Program
{
public static void Main(string[] args)
{
var logger = NLog.Web.NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();
try
{
logger.Debug("init main");
CreateWebHostBuilder(args).Build().Run();
}
catch (Exception ex)
{
//NLog: catch setup errors
logger.Error(ex, "Stopped program because of exception");
throw;
}
finally
{
// Ensure to flush and stop internal timers/threads before application-exit (Avoid segmentation fault on Linux)
NLog.LogManager.Shutdown();
}
} …Run Code Online (Sandbox Code Playgroud) 我从 Angular 9.17 升级到 9.19,现在 ng build 失败并出现以下错误,抱怨@types/node 和 zone.js 中的变量声明:
node_modules/@types/node/ts3.5/globals.global.d.ts:1:13 中的错误 - 错误 TS2403:后续变量声明必须具有相同的类型。变量“global”必须是“Global”类型,但这里的类型是“Global & typeof globalThis”。
1 声明var global: NodeJS.Global & typeof globalThis; ~~~~~~
node_modules/zone.js/dist/zone.js.d.ts:600:13 600 声明 var global: NodeJS.Global; ~~~~~~ 'global' 也在这里声明。
升级前运行良好,现在无法构建。这是唯一的变化。
请帮忙。
我的 package.json
{
"name": "myapp",
"private": true,
"version": "1.0.0",
"scripts": {
"ng": "ng",
"start": "echo hello && ng serve --live-reload=false",
"build": "node --max_old_space_size=4096 ng build",
"build:ssr": "ng run MIC:server:dev",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"postcss": {},
"dependencies": …Run Code Online (Sandbox Code Playgroud)我有一个 Angular 10 应用程序,它使用 oidc 对 Azure AD 进行身份验证。它成功获取令牌,然后对 WCF 服务(.net framework 4.7)进行 REST 调用,发送它从 Azure 收到的令牌。WCF 服务中的验证代码失败并显示以下错误:IDX10511:签名验证失败。尝试过的键:'System.Text.StringBuilder'。孩子:'System.String'。捕获异常:'System.Text.StringBuilder'。令牌:'System.IdentityModel.Tokens.Jwt.JwtSecurityToken'。
如果我使用 Auth0 进行身份验证,则相同的 WCF 代码能够验证来自 Auth0 的 jwt,没有错误。
以下是我的 oidc 客户端的 UserManagerSettings:
this.stsSettings = {
authority: "https://login.microsoftonline.com",
client_id: myclientId,
redirect_uri: `${myclientRoot}signin-callback`,
scope: "openid profile email",
response_type: "code",
loadUserInfo: false, // setting loadUserInfo to true causes error because CORS blocks the call to the user info endpoint.
post_logout_redirect_uri: `${myclientRoot}signout-callback`,
silent_redirect_uri: `${myclientRoot}assets/silent-callback.html`,
metadata: {
issuer: `${mystsAuthority}/${mytenantId}/v2.0`,
authorization_endpoint: `${mystsAuthority}/${mytenantId}/oauth2/v2.0/authorize`,
token_endpoint: `${mystsAuthority}/${mytenantId}/oauth2/v2.0/token`,
"jwks_uri": `https://login.microsoftonline.com/${mytenantId}/discovery/v2.0/keys`,
}
Run Code Online (Sandbox Code Playgroud)
我在 …
angular ×7
.net-core ×1
angular-cli ×1
angular9 ×1
asp.net-core ×1
c# ×1
jwt ×1
msgpack ×1
node-modules ×1
signalr ×1
typescript ×1
wcf ×1
zonejs ×1