小编Ros*_*eur的帖子

Angular 2:使用参数@Input和@Output动态加载组件

目前我正在用这段代码动态加载我的一些组件.

export class ComponentOutlet {

    constructor(
        private vcRef: ViewContainerRef,
        private compiler: Compiler,
        private dataService: DataService
    ) { }

    private _createDynamicComponent() {

        // Some logic to decide which component should be loaded
        return MyComponent;
    }


    ngOnChanges() {

        this.compiler.compileComponentAsync(this._createDynamicComponent())
            .then(factory => {
                const injector = ReflectiveInjector.fromResolvedProviders([], this.vcRef.parentInjector);
                this.vcRef.clear();
                this.vcRef.createComponent(factory, 0, injector);
            });
    }
Run Code Online (Sandbox Code Playgroud)

问题是MyComponent有一些@InputOutput绑定.是否可以在此处设置此绑定?我怎样才能做到这一点?

angular

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

Angular 10 升级:为什么对抽象(组件)类使用 @Directive() 而不是 @Component()?

我最近将 Angular 应用程序从 v9 升级到了 v10。

我注意到不再支持未修饰的类。看这里

因此,在ng upgrade我的抽象组件中,没有装饰的组件已更改为具有@Directive()装饰器。

例如

export abstract class AbstractFormControl implements ControlValueAccessor { ... }
Run Code Online (Sandbox Code Playgroud)

被改为

@Directive()
export abstract class AbstractFormControl implements ControlValueAccessor { ... }
Run Code Online (Sandbox Code Playgroud)

为什么 Angular 使用@Directive. 难道不是@Component一个更好的方法吗,因为类更像是一个组件而不是指令?意图是什么?

angular angular10

8
推荐指数
1
解决办法
4951
查看次数

Angular 2.如何使用Observable中的重定向处理4xx错误?

我有一个叫api的服务

getItems(itemId: number): Observable<any> {
    return this.http.get(url, headers)
        .map(this.extractDataSingle)
        .catch(this.handleError)
}
Run Code Online (Sandbox Code Playgroud)

如果服务器以4xx响应,catch则调用该部件.这是我的handleError方法.

private handleError = (error: any) => {
    //Here I want to redirect to login.
}
Run Code Online (Sandbox Code Playgroud)

我想重定向到该login页面.简单的打字this._router.navigate(['Login']);不起作用,因为我必须返回一个Observable.返回一个空的Observable return Observable.empty;也不起作用,因为我的订阅者收到错误:Cannot read property 'subscribe' of undefined.

如何实现我将用户重定向到登录页面?当然,我可以更改我的订阅者以捕获错误并通过我的订阅者重定向.但我认为最好在我的服务中处理错误.

我也对如何处理4xx错误的完全不同的解决方案持开放态度.

编辑:感谢@GüntherZöschbauer.这return Observable.of([]);正是我所需要的.但是,请注意this.为了有机会获得routerhandleError方法中使用bind(this).catch(this.handleError.bind(this))

getItems(itemId: number): Observable<any> {
    return this.http.get(url, headers)
        .map(this.extractDataSingle)
        .catch(this.handleError.bind(this))
}
Run Code Online (Sandbox Code Playgroud)

否则你无权访问你的router.

error-handling rxjs angular2-services angular

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

如何获得"Observable.of([]);" 上班?

什么是正确的表达和导入Observable.of([]);.

import { of } from 'rxjs'; 不适合我.

rxjs typescript rxjs5 angular rxjs6

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

NodeJS 仅监听本地主机

我开发了一个NestJS 服务器应用程序。NestJs 是一个用 TypeScript 编写的 Express 运行的节点服务器。

现在我想在我的 rapsberry pi 上部署该应用程序。但是,我只能从本地主机访问服务器。如果我尝试从不同的客户端访问,则不会返回任何内容。(图中的“^C”只是取消符号;D)

我已经将主机名设置为0.0.0.0. 我还可以做些什么?

# /src/main.ts 
import {NestFactory} from '@nestjs/core';
import {AppModule} from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.enableCors();
  await app.listen(3001, '0.0.0.0');
}
Run Code Online (Sandbox Code Playgroud)

看图片

node.js express nestjs

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

如何在插值语法中使用HTML标记

如何使用Angular 2在HTML模板中插入HTML标签?

例如:

<h1> {{title ? title : '<i>Title not set</i>'}} </h1>
Run Code Online (Sandbox Code Playgroud)

如果title未定义,那么应该有一个Title not setin i-Tags.

如果我使用上面的语法,Angular将精确显示表达式(表示{{,?,:,}}}并且不对其进行评估.

angular

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

匹配两个矩形的位置和大小的算法

我正在寻找一种算法来计算以下内容:我有一个带有预定义区域的图像(附加图像上的绿色图像).用户绘制红色矩形,算法应计算红色矩形是否与绿色矩形匹配.例如,附加图片上的红色矩形的位置就可以了.

计算这个的好方法是什么?有没有最佳实践算法?

我的想法是计算红色矩形的中间,然后确定中间是否在绿色矩形内.另外,我会计算长度和高度是否与绿色长度和高度相匹配(25%或更多).

这是一个好主意吗?还有其他建议吗?

在此输入图像描述

algorithm image-processing pattern-matching template-matching

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

角度2:全局AppInjector。如何避免警告“循环依赖”

在我的Angular App中,我有一个名为AppInjector的全局变量,该变量返回Injector。该变量ist设置在中AppModule

export let AppInjector: Injector;

@NgModule({
    declarations: [
        AppComponent,
    ],
    bootstrap: [AppComponent],
})
export class AppModule {

    constructor(private injector: Injector) {
        AppInjector = this.injector;
    }
}
Run Code Online (Sandbox Code Playgroud)

我有一些辅助功能,可以通过AppInjector特殊服务获得帮助。辅助函数位于单独的文件中,不属于任何组件。例如:

function initNodeTemplate() {

    diagram.nodeTemplateMap.add(NodeCategory.Question,
        GO(go.Node, "Auto",
            {
                click: (evt, obj) => {(AppInjector.get(MyService) as MyService).myFunction(obj)},
            },
            // other stuff ...
        ));
}
Run Code Online (Sandbox Code Playgroud)

问题是,该角的编译器警告我关于循环依赖(因为AppInjectorWARNING in Circular dependency detected: src\app\app.module.ts -> src\app\frame\frame.module.ts -> src\app\designer\designer.module.ts -> src\app\designer\designer.component.ts -> src\app\designer\helpers\templates.helper.ts -> src\app\app.module.ts

我如何摆脱这个警告? 我知道我可以将服务注入组件,然后将服务传递给助手功能。在这种情况下,我可以将其detailService作为参数传递给initNodeTemplate(),因此不再需要AppInjector …

typescript angular

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

XAMPP:Phpmyadmin 不适用于 FastCGI

我本地安装了 XAMPP。由于某些原因(Java-Php-Bridge)我必须使用 FastCGI。所以我使用本指南进行设置:http://www3.umoncton.ca/dashboard/docs/use-php-fcgi.html

这工作正常,但现在我无法访问http://localhost/phpmyadmin/ 错误是:

禁止访问!

新的XAMPP安全概念:

只能从本地网络访问所请求的目录。

可以在文件“httpd-xampp.conf”中配置此设置。

这是我的“httpd-xampp.conf”文件:

#
# XAMPP settings
#

<IfModule env_module>
    SetEnv MIBDIRS "C:/xampp/php/extras/mibs"
    SetEnv MYSQL_HOME "\\xampp\\mysql\\bin"
    SetEnv OPENSSL_CONF "C:/xampp/apache/bin/openssl.cnf"
    SetEnv PHP_PEAR_SYSCONF_DIR "\\xampp\\php"
    SetEnv PHPRC "\\xampp\\php"
    SetEnv TMP "\\xampp\\tmp"
</IfModule>

#
# PHP-Module setup
#
LoadFile "C:/xampp/php/php5ts.dll"
LoadFile "C:/xampp/php/libpq.dll"

#LoadModule php5_module "C:/xampp/php/php5apache2_4.dll"
LoadModule fcgid_module modules/mod_fcgid.so


#<FilesMatch "\.php$">
#    SetHandler application/x-httpd-php
#</FilesMatch>
#<FilesMatch "\.phps$">
#    SetHandler application/x-httpd-php-source
#</FilesMatch>
FcgidInitialEnv PHPRC "c:/xampp/php"
AddHandler fcgid-script .php
FcgidWrapper "c:/xampp/php/php-cgi.exe" .php


#
# PHP-CGI setup
#
#<FilesMatch …
Run Code Online (Sandbox Code Playgroud)

php xampp fastcgi phpmyadmin mod-fastcgi

0
推荐指数
1
解决办法
3086
查看次数