因为我不能在互联网上找到一个明确的答案,所以听到我的问题:
我有一个像这样的"结构":
struct tTest{
char foo [1+1];
char bar [64];
};
Run Code Online (Sandbox Code Playgroud)
有没有办法在TS/JS中构建它?
我认为使用接口是正确的方法:
export interface tTest{
foo: string;
bar: string;
}
Run Code Online (Sandbox Code Playgroud)
但是没有办法将[64]和[1 + 1]添加到属性中,是吗?如果有,那将是很棒的,因为我需要每个tTest像对象长度相同,并且更难以检查长度并添加东西,直到它具有正确的长度.我觉得这真的很脏.
任何想法/帮助?谢谢!
我正在为我的应用程序使用PrimeNG和Angular2.
我有一个组件应该显示可选主题的下拉菜单.我已经按照PrimeNG Dropdown文档进行操作,据我所知,我的所有内容都以同样的方式构建.但我总是得到错误"没有价值访问者''"
theme.component.ts:
import { Component, OnInit, Input } from '@angular/core'
import { Dropdown, SelectItem} from 'primeng/primeng';
@Component({
selector: 'my-themes',
templateUrl: 'dist/html/theme.component.html',
directives: [Dropdown],
})
export class ThemeComponent {
selectables: SelectItem[];
style: string;
constructor() {
this.selectables = [];
this.selectables.push({ label: 'Nightflat', value: 'Nightflat' });
this.selectables.push({ label: 'Flat', value: 'Flat' });
}
ngOnInit() {
}
}
Run Code Online (Sandbox Code Playgroud)
theme.component.html:
<p-dropdown [options]="selectables" [(ngModel)]="style"></p-dropdown>
Run Code Online (Sandbox Code Playgroud)
任何可能出现问题的想法?:(编辑:问题实际上是ngModel.如果我从html标签中删除它,将显示Dropdown.
我需要知道是否可以在多维数组上使用 array.every 方法。
我的数组如下所示:
tabs=[
{label: string, icon: icon, routerLink: link},
{label: string, icon: icon, routerLink: link},
{label: string, icon: icon, routerLink: link}]
Run Code Online (Sandbox Code Playgroud)
我需要知道选项卡内的每个标签是否不等于特定标签。如果您能提供详细的答案,我将非常感激,因为我是一名新手程序员,想了解我在做什么!但无论如何请随意回答。:) 到目前为止谢谢!
编辑:我正在使用此方法将选项卡添加到我的选项卡菜单(ng2,primeng):
tabs=[
{label: string, icon: icon, routerLink: link},
{label: string, icon: icon, routerLink: link},
{label: string, icon: icon, routerLink: link}]
Run Code Online (Sandbox Code Playgroud)
TABS 是 primeng 提供的 MenuItem[] 类型,而 tab 是任何类型。
每次我双击图表时,都会调用该图表,并将一个新选项卡推入我的菜单中。现在我想检查带有特定标签的选项卡是否已经打开,以便它不会再次打开。我尝试将 for 循环与 if 结合使用
addTab(id: string) {
if (id === 'linechart') {
this.tab = {
label: 'NW-Details',
icon: 'fa-area-chart',
routerLink: ['/nwdetails']
}
TABS.push(this.tab);
}
if (id …Run Code Online (Sandbox Code Playgroud) 我正在使用Angular2的可迭代Differs来检测我的数据更改。然后,我想重新加载我的视图。但是different.diff总是返回“ null”,我也不知道为什么。
constructor(differs: IterableDiffers) {
this.differ = differs.find([]).create(null);
}
@Input() data: any;
ngDoCheck() {
var changes = this.differ.diff(this.data.datasets);
if (changes && this.initialized) {
//doreload
}
Run Code Online (Sandbox Code Playgroud)
编辑:
this.pingService.pingStream.subscribe(ping => {
this.ping = ping;
console.log(this.ping);
NTWDATA.datasets[0].data.shift();
NTWDATA.datasets[0].data.push(this.ping);
Run Code Online (Sandbox Code Playgroud)
PingService每5秒返回一个数字(对服务器进行ping操作)。移位/推送thingy工作正常,数据在那里。只是没有被发现。NTWDATA:
{
labels: ["","","","","","",""],
datasets: [
{
label: 'Server Response Time in ms',
data: [65, 59, 80, 81, 56, 55, 40],
fill: false,
borderColor: '#FF0303'
}
]
}
Run Code Online (Sandbox Code Playgroud) 我正在使用服务每2.5秒“ ping”我的服务器,并从我的服务器返回响应时间。因此,我正在使用观测值。
我也使用angular 2和打字稿。
现在,我想在单击按钮时停止该服务(退订)。这样很好!该按钮应该是一个切换按钮,因此,如果未订阅,请进行订阅以及其他方式。但是重新订阅是行不通的!
这是我的服务:
export class PingService {
pingStream: Subject<number> = new Subject<number>();
ping: number = 0;
url: string = url.href;
constructor(private _http: Http) {
Observable.interval(2500)
.subscribe((data) => {
let timeStart: number = performance.now();
this._http.get(this.url)
.subscribe((data) => {
let timeEnd: number = performance.now();
let ping: number = timeEnd - timeStart;
this.ping = ping;
this.pingStream.next(ping);
});
});
}
}
Run Code Online (Sandbox Code Playgroud)
这是我点击的功能:
toggleSubscription() {
if (this.pingService.pingStream.isUnsubscribed) {
this.pingService.pingStream.subscribe(ping => {
this.ping = ping;
NTWDATA.datasets[0].data.pop();
NTWDATA.datasets[0].data.splice(0, 0, this.ping);
})
}
else { …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的两个组件之间实现自定义的双向绑定。
我确实读过命名约定,说你必须定义一个@Input()类似的“ test”,然后定义一个@Output()命名的“ testChange”。
我找不到任何关于这是否仍然是最新的信息,我无法让我的绑定工作。
parentComponent 中的一些代码:
<my-comp [(userGroupIds)]="userGroups"></my-comp>
我的组件(子):
export class MyComponent implements OnInit, OnDestroy{
@Input() userGroupIds: number[];
@Output() userGroupIdsChange = new EventEmitter<number[]>();
updateValues(){
//here I am iterating through the rows of a table within my component
this.userGroupIds = this.tableRows.map(item => {return item['id']});
this.userGroupdIdsChange.emit(this.userGroupIds);
}
}
Run Code Online (Sandbox Code Playgroud)
父组件:
export class parentComponent implements OnInit, OnChanges, OnDestry{
userGroups: number[];
constructor(){
this.userGroups = [];
}
ngOnChanges(changes: SimpleChanges){
if(changes['userGroups']){
// this is never show, ngOnChanges doesn't get fired; …Run Code Online (Sandbox Code Playgroud) 我对图表(primeng)有一个概述,现在我需要知道是否有可能在点击时从图表中获取ID.
仅供参考我有一个上下文菜单,其中包含"在新标签页中打开",我需要从图表中打开上下文菜单中的ID.
右键单击 - >图表中的getID - >使用ID打开新选项卡,仅显示该图表.
我见过像event.target.attributes.id /event.currenttarget这样的东西,但那是js,对吧?我正在使用Typescript.
所以问题实际上很简单:我怎么能这样做?
我是一个与编程相关的新手,我几周前开始了,所以请耐心等待,因为我可能无法像其他人那样快速地理解一切.
编辑:
上下文菜单的MenuItems:
this.ctitems = [
{
label: 'Öffnen(neuer Tab)',
icon: 'fa-plus',
command: (onClick) => {this.function()}
},
{
label: 'Öffnen(dieser Tab)',
icon: 'fa-hand-o-down'
}
];
Run Code Online (Sandbox Code Playgroud)
获取id的函数
function() { event.target.getID <- problem }
Run Code Online (Sandbox Code Playgroud)
只要我有ID,我就想将ID指定的项目推送到TabMenu中显示的项目数组中.但那就是未来.现在我只需要获取ID.
HTML:
<p-chart height="100" width="100" class="ui-g-2 " type="line" id="linechart" [data]="ntwdata"></p-chart>
<p-contextMenu id="cm" [model]="ctitems"></p-contextMenu>
Run Code Online (Sandbox Code Playgroud) 我无法帮助自己搜索互联网的答案,所以我马上就会问.
我正在使用angular2和typescript运行前端,从服务器接收数据.
有没有办法设置连接以特定间隔发送ping以获得服务器响应时间?然后,我想使用PrimeNG在图表中显示它们.
typescript ×7
angular ×6
javascript ×2
primeng ×2
arrays ×1
click ×1
html ×1
rxjs ×1
server ×1