我正在尝试将我的动态组件加载程序从RC4更新到RC5,因为不推荐使用ComponentResolver.我已将加载程序更新为以下内容
@Component({
selector: 'component-dispatcher',
template: `<div #container></div>` // Define the template here because of its brevity
})
export class ComponentDispatcherComponent implements OnInit, OnDestroy {
@Input() component:any; // Some dynamic component to render
@Input() options:any; // Component configuration, optional
@Input() data:any; // Data to render within the component
// Inject the dynamic component onto the DOM
@ViewChild("container", {read: ViewContainerRef}) container:ViewContainerRef;
private componentReference:ComponentRef<any>;
constructor(private resolver:ComponentFactoryResolver) {
}
ngOnInit() {
// Create our component now we're initialised
let componentFactory = this.resolver.resolveComponentFactory(this.component);
this.componentReference = …Run Code Online (Sandbox Code Playgroud) 我目前正在使用以下代码将对象编组为xml字符串
JAXBContext context;
try {
context = JAXBContext.newInstance(heartbeat.getClass());
StringWriter writer = new StringWriter();
Marshaller marshaller = context.createMarshaller();
heartbeat.setHeader(header);
heartbeat.setHeartbeatEvent(event);
marshaller.marshal(heartbeat, writer);
String stringXML = writer.toString();
return stringXML;
} catch (JAXBException e) {
throw new RuntimeException("Problems generating XML in specified "
+ "encoding, underlying problem is " + e.getMessage(),
e);
}
Run Code Online (Sandbox Code Playgroud)
这会产生以下标题
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Run Code Online (Sandbox Code Playgroud)
我想要的输出如下
<?xml version=\"1.0\"?>
Run Code Online (Sandbox Code Playgroud)
通过将此添加到编组器
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.FALSE);
marshaller.setProperty("com.sun.xml.bind.xmlHeaders", "<?xml version=\"1.0\"?>");
Run Code Online (Sandbox Code Playgroud)
我收到
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><?xml version="1.0"?>
Run Code Online (Sandbox Code Playgroud)
并将JAXB_FRAGMENT属性更改为TRUE将完全删除标头.我一直关注JAXB - 从生成的XML线程中删除'standalone ="yes"'试图解决问题,但到目前为止我没有运气.有人可以给我一些关于如何从JAXB marshaller获取所需标题的见解吗?
我有几种情况,JAXB从xsd文件生成的类有一系列类列表,这些类也包含类列表.生成的类在处理这些情况时使用静态内部类,但这会导致多个实例多次存在一个类.
作为一个例子,我有一个存在于多个xsd文件中的Parameter类.在每个实例中,此参数类都相同并包含键值对.为每个xsd文件生成代码时,每个生成的类都包含一个名为Parameter的内部类.
为了减少冗余,我从所有生成的类中删除了Parameter类,重新实现了它,并更新了所有引用.这按预期工作
当我有另一个类,如LogicalDevice,也在几个类中实现时,会出现问题.LogicalDevice包含一个ParameterList.当LogicalDevice被提取到它自己的类,并且引用被更新时,只保留Parameter类中的第一个属性,其余属性为null.
这让我相信静态内部类有一些特殊之处.
这里参考我的xml和代码
<Jetstream xmlns="http://Jetstream.TersoSolutions.com/v1.1/GetPoliciesResponse">
<Header/>
<GetPoliciesResponse>
<PolicyList>
<Policy Id="53bb663f-7ed0-41f8-9757-90ad4e015995" Name="MyPolicy"
DeviceDefinitionId="f3536a6d-4610-4d56-82d9-54fd6602a883" >
<ParameterList>
<Parameter Name="aggregateeventscancount" Value="2"/>
<Parameter Name="aggregateeventscantime" Value="10"/>
<Parameter Name="antenna1rxsensitivity" Value="50"/>
<Parameter Name="antenna1txpower" Value="30"/>
<Parameter Name="antenna2rxsensitivity" Value="50"/>
<Parameter Name="antenna2txpower" Value="30"/>
<Parameter Name="antenna3rxsensitivity" Value="50"/>
<Parameter Name="antenna3txpower" Value="30"/>
<Parameter Name="antenna4rxsensitivity" Value="50"/>
<Parameter Name="antenna4txpower" Value="30"/>
<Parameter Name="commandpollinterval" Value="60"/>
<Parameter Name="dns" Value="0.0.0.0"/>
<Parameter Name="dooropentimelimit" Value="300"/>
<Parameter Name="gateway" Value="0.0.0.0"/>
<Parameter Name="ip" Value="0.0.0.0"/>
<Parameter Name="jetstreamdeviceurl" Value="https://us-device.tersosolutions.com/v1.0/device/"/>
<Parameter Name="lockdownhightemp" Value="127"/>
<Parameter Name="lockdownonacpowerfailure" Value="0"/>
<Parameter Name="lockdownonreaderfailure" Value="0"/>
<Parameter Name="lockdownonhightemp" Value="0"/>
<Parameter Name="logentryeventhightemp" …Run Code Online (Sandbox Code Playgroud) 我有几个TextBoxes跟Labels在我的代码与下面的XAML代码来实现:
<DockPanel HorizontalAlignment="Right">
<TextBlock Foreground="Black" Padding="0,0,10,0">Serial Number:</TextBlock>
<TextBox Width="150" IsReadOnly="True" BorderBrush="Gainsboro" Height="20"></TextBox>
</DockPanel>
Run Code Online (Sandbox Code Playgroud)
我可以通过执行以下操作来减少一些复制的代码:
<DockPanel HorizontalAlignment="Right">
<TextBlock Style="{StaticResource CstmTextBoxLbl}">Serial Number:</TextBlock>
<TextBox Style="{StaticResource CstmTextBox}"></TextBox>
</DockPanel>
Run Code Online (Sandbox Code Playgroud)
但它仍然有些冗长。是否可以执行以下操作:
<controls:CstmTextBox Style="{StaticResource CstmTextBox}" LabelText="Serial Number:" Text=""/>
Run Code Online (Sandbox Code Playgroud)
凡CstmTextBox将实现任何所需XAML获得一次相同的视觉效果,而且我可以访问两个TextBlock文本和TextBox代码的文本。如
CstmTextBox textbox;
textbox.LabelText = "Serial Number:";
String some_text = textbox.Text;
textbox.Text = "....";
Run Code Online (Sandbox Code Playgroud) 我正在尝试按照以下说明在 Windows 机器上启动 activemq 代理
http://activemq.apache.org/getting-started.html#GettingStarted-StartingActiveMQ
下载 Windows 二进制文件后,我切换到安装目录并按照说明使用 bin/activemq 启动代理。启动失败,在扫描文本墙后,我发现了以下错误。
ERROR | Failed to start Apache ActiveMQ ([localhost, ID:[Computer ID]:1], java.io.IOException: Transport Connector could not be registered i
n JMX: Failed to bind to server socket: amqp://0.0.0.0:5672?maximumConnections=1
000&wireFormat.maxFrameSize=104857600 due to: java.net.BindException: Address al
ready in use: JVM_Bind)
Run Code Online (Sandbox Code Playgroud)
已在使用的地址使我相信另一个 amqp 代理,例如 RabbitMQ 或 Qpid(两者都已安装),可能已经分配了连接,因此我重新启动了计算机,但没有成功消除错误。
谁能给我一些关于如何尝试让 ActiveMQ 正常运行的想法。
我想创建一个通用的列表组件,其中包含一些我希望所有列表都具有的功能。理想情况下,我想使用不同的服务作为组件的输入以呈现不同的数据集。角度2有可能吗?
从Angular 2文档修改示例
@Component({
selector: 'Generic List',
template:
`
<h2>Items</h2>
<ul class="items">
<li *ngFor="let item of items"
[class.selected]="isSelected(item)"
(click)="onSelect(item)">
<span class="badge">{{item.id}}</span> {{item.name}}
</li>
</ul>
`
})
export class GTComponent {
@Input() someService: Service;
items: Item[];
private selectedId: number;
isSelected(item: Item) { return item.id === this.selectedId; }
onSelect(item: Item) {
}
}
Run Code Online (Sandbox Code Playgroud)
如果可能的话,如果服务具有一些getItems()返回了Promise的函数,我将如何使用服务中的数据填充items数组。
我有一系列处理过的音频文件,正在使用Keras输入到CNN中。Keras 1D卷积层是否支持可变的序列长度?Keras文档使其不清楚。
https://keras.io/layers/convolutional/
它在文档的顶部提到您可以对128维向量的可变长度序列使用(None,128)。但在底部,它声明输入形状必须为
3D tensor with shape: (batch_size, steps, input_dim)
Run Code Online (Sandbox Code Playgroud)
给定以下示例,我应如何将可变长度的序列输入网络
可以说我有两个示例(a和b),它们包含要输入到1DConv层中作为输入的长度为100的X 1维向量
3D tensor with shape: (batch_size, steps, input_dim)
Run Code Online (Sandbox Code Playgroud)
我可以使用(2,None,100)的输入形状吗?我需要将这些张量连接到c中吗
a.shape = (100, 100)
b.shape = (200, 100)
Run Code Online (Sandbox Code Playgroud)
然后重塑它成为某种东西
c.shape = (300, 100)
Run Code Online (Sandbox Code Playgroud)
其中批处理大小为3,步骤数为100,第二个为输入大小100?输入向量的文档不是很清楚。
我有一个 API,它对导致循环依赖的数据进行非规范化。有没有办法使用抽象类、接口、组合或其他技术来重构以下内容,我不需要为每个实体创建 N 个部分类以避免我的 Angular 应用程序的类型定义中的循环依赖?
模型.ts
export abstract class Model {
// ... Model related data members and functions
}
Run Code Online (Sandbox Code Playgroud)
人.ts
import { Model } from './model';
import { Site } from './site';
export class Person extends Model {
// ... Data
site: Site; // Partially or Fully saturated site entity
}
Run Code Online (Sandbox Code Playgroud)
网站.ts
import { Model } from './model';
import { Person } from './person';
export class Site extends Model {
// ... Data
people: Person[]; // array of …Run Code Online (Sandbox Code Playgroud) 我有一个有几十个属性需要引发属性更改事件的类,目前我的代码看起来像
public class Ethernet : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string timeStamp;
public string TimeStamp
{
get { return timeStamp; }
set
{
timeStamp = value;
if(PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("TimeStamp"));
}
}
}
Run Code Online (Sandbox Code Playgroud)
在C#中编写这种代码是否有更短的方法,我正在为每个属性进行过多的复制/粘贴操作,我觉得必须有更好的方法.