我正在努力将我的项目从 Angular 8 升级到 9,并且在扩展类时遇到了新需求的问题。
根据 Angular 的文档:
使用 Angular 功能的未修饰基类
从版本 9 开始,不推荐使用未修饰的基类:
- 使用 Angular 功能
- 由指令或组件扩展
Angular 生命周期挂钩或以下任何 Angular 字段装饰器都被视为 Angular 功能:
@Input()@Output()@HostBinding()@HostListener()@ViewChild()/@ViewChildren()@ContentChild()/@ContentChildren()
对于@Component装饰器,它需要基类上的templateor 。templateURL添加任一都会导致子类不呈现其模板。
例如,以下结果不会在视图上呈现任何内容:
@Component({
template: ''
})
export abstract class BaseComponent<T extends AbstractSuperEntity> extends Toggler implements OnChanges {
@Input()
year: number | string
constructor(service: MyService) {
}
ngOnChanges() {
}
}
@Component({
templateUrl: 'my.component.html',
selector: 'my-component'
})
export …Run Code Online (Sandbox Code Playgroud) 由于各种原因,我有几个包装 PrimeNG 组件的自定义组件。我的组件的某些实例以反应形式使用,并且该字段的“要求”是使用Validators.required验证器设置的。
PrimeNG 组件提供一个required属性。
如何检查组件的 NgControl 是否有所需的验证器?存在.disabled和.invalid,但.invalid可以表示任何意思。
这是我现在使用的,它适用于下拉菜单,但对于任何其他类型的输入来说都是不正确的。
@Component({
selector: 'my-component',
templateUrl: 'my.component.html'
})
export class MyComponent implements OnInit, ControlValueAccessor {
@Input()
public disabled: boolean
@Input()
public required: boolean
constructor(
@Optional() @Self() public ngControl: NgControl
) {
if (this.ngControl != null) {
this.ngControl.valueAccessor = this;
}
}
ngOnInit() {
if (this.ngControl) {
this.required = this.ngControl.invalid;
this.disabled = this.ngControl.disabled;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我确信有更好的方法可以做到这一点,但我不知道如何做。
我正试图从一条儿童路线导航到另一条儿童路线,但我不断得到Route not found.我的主要问题是:如何在儿童观点之间导航?
以下是代码,我也将在下面提出其他问题.
应用模式 - 查看 应用类:
export class App {
configureRouter(config, router) {
config.title = 'My Site';
config.map([
{ route: ['','job-view'], name: 'jobView', moduleId: './job-view', nav: true, title:'Jobs'},
{ route: ['services'], name: 'services', moduleId: './services', nav: true, title:'Services'}
]);
this.router = router;
this.router.refreshNavigation();
}
}
Run Code Online (Sandbox Code Playgroud)
问题2:router如果始终可以访问,为什么我们需要保存在这里aurelia-router?
应用页面:
<template>
<require from='./nav-bar'></require>
<nav-bar router.bind="router"></nav-bar>
<div class="container">
<router-view></router-view>
</div>
</template>
Run Code Online (Sandbox Code Playgroud)
好了,现在我们已经定义了根页面视图和导航,让我们定义job-viewMV.
JobView类:
export class JobView {
configureRouter(config, router) {
config.map([
{ route: …Run Code Online (Sandbox Code Playgroud) 在如何使用JMS资源以及在注释activationConfig上正确设置方面似乎存在一些不一致.@ActivationConfigProperty@MessageDriven
首先,这是我的资源配置(glassfish-resources.xml,但可以翻译成其他部署描述符).这适用于Glassfish(asadmin add-resources glassfish-resources.xml)以及ActiveMQ资源适配器:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN" "http://glassfish.org/dtds/glassfish-resources_1_5.dtd">
<resources>
<resource-adapter-config name="activemq-rar"
thread-pool-ids="thread-pool-1"
resource-adapter-name="activemq-rar">
<property name="ServerUrl" value="tcp://localhost:61616"/>
<property name="UserName" value="admin"/>
<property name="Password" value="admin"/>
<property name="UseInboundSession" value="false"/>
</resource-adapter-config>
<admin-object-resource enabled="true"
jndi-name="jms/queue/myApp"
object-type="user"
res-adapter="activemq-rar"
res-type="javax.jms.Queue">
<description>MyApp JMS Queue</description>
<property name="Name" value="myAppAMQ"/>
<property name="PhysicalName" value="myAppAMQ"/>
</admin-object-resource>
<connector-resource enabled="true"
jndi-name="jms/factory/myApp"
object-type="user"
pool-name="jms/factoryPool/myApp">
<description>MyApp Connection Factory</description>
<property name="Name" value="myAppFactory"/>
</connector-resource>
<connector-connection-pool associate-with-thread="false"
connection-creation-retry-attempts="0"
connection-creation-retry-interval-in-seconds="10"
connection-definition-name="javax.jms.QueueConnectionFactory"
connection-leak-reclaim="false" …Run Code Online (Sandbox Code Playgroud) 我有一个 web 应用程序,我试图在 Payara Micro 的 docker 容器中部署,但glassfish-resources.xml详细信息没有添加到服务器的microdomain.xml.
JDBC 定义非常基本,使用从 docker 命令设置的环境变量(这是位于MyApp.war/WEB-INF/glassfish-resources.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN" "http://glassfish.org/dtds/glassfish-resources_1_5.dtd">
<resources>
<jdbc-resource pool-name="MyAppDB" jndi-name="jdbc/MyAppDB" enabled="true" ></jdbc-resource>
<jdbc-connection-pool datasource-classname="com.microsoft.sqlserver.jdbc.SQLServerDataSource"
name="MyAppDB"
res-type="javax.sql.DataSource">
<property name="User" value="${ENV=MY_APP_DATABASE_USER}"></property>
<property name="Password" value="${ENV=MY_APP_DATABASE_PASS}"></property>
<property name="DatabaseName" value="${ENV=MY_APP_DATABASE_NAME}"></property>
<property name="ServerName" value="${ENV=MY_APP_DATABASE_SERVER}"></property>
<property name="PortNumber" value="1433"></property>
</jdbc-connection-pool>
</resources>
Run Code Online (Sandbox Code Playgroud)
这是payara.env文件:
MY_APP_DATABASE_USER=someuser
MY_APP_DATABASE_PASS=somepass
MY_APP_DATABASE_NAME=MY_APP_DB
MY_APP_DATABASE_SERVER=192.168.10.110
Run Code Online (Sandbox Code Playgroud)
正如您从下面的日志中看到的,mysql-jdbc-7.0.0.jre8.jar确实被添加到类路径中。
码头工人命令:
docker run -p 8080:8080 \
--mount type=bind,src=$(pwd)/deployments,dst=/opt/payara/deployments \
--mount type=bind,src=$(pwd)/lib,dst=/opt/payara/lib …Run Code Online (Sandbox Code Playgroud)