我在高级图表中有一个很好的图表,用户可以放大.我真的不喜欢内置的ZOOM RESET按钮,并希望将我自己的自定义缩放重置按钮添加到已存在的导航栏中.
所以我的问题是:1.有没有办法隐藏默认的highcharts ZOOM RESET按钮?2.我可以调用一个方法/函数来执行ZOOM RESET吗?(我可以通过我自己的按钮点击来调用它)
我在Angular 4中创建了一个表单,允许用户单击表单中的ADD或REMOVE按钮向表单添加/删除字段.我使用ngFor从一个数组创建屏幕上的html输入(由add函数放大,或者由remove函数缩小).
在html模板中,我可以以formControlName ="control {{index}}"的形式添加formControlName,以确保每个新输入都有一个formcontrol.
但是,如何为这些输入动态添加和删除验证器?
我正在尝试使用websockets和Angular 4学习RxJS,并在这里找到了一个很好的例子.我希望有人可以帮助解释这个例子,因为有些事情令人困惑.
他们创建了2个Angular服务,即Websocket服务:
import { Injectable } from '@angular/core';
import * as Rx from 'rxjs/Rx';
@Injectable()
export class WebsocketService {
constructor() { }
private subject: Rx.Subject<MessageEvent>;
public connect(url): Rx.Subject<MessageEvent> {
if (!this.subject) {
this.subject = this.create(url);
console.log("Successfully connected: " + url);
}
return this.subject;
}
private create(url): Rx.Subject<MessageEvent> {
let ws = new WebSocket(url);
let observable = Rx.Observable.create(
(obs: Rx.Observer<MessageEvent>) => {
ws.onmessage = obs.next.bind(obs);
ws.onerror = obs.error.bind(obs);
ws.onclose = obs.complete.bind(obs);
return ws.close.bind(ws);
})
let observer = { …Run Code Online (Sandbox Code Playgroud) 我正在尝试为MySQL编写一个SELECT语句,它从表A中选择表B中不存在的内容.例如:
表A:
+------+
| BAND |
+------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
+------+
Run Code Online (Sandbox Code Playgroud)
表B:
+------+
| HATE |
+------+
| 1 |
| 5 |
+------+
Run Code Online (Sandbox Code Playgroud)
因此,如果表A是所有乐队,而表B是我讨厌的乐队,那么我只想要我不讨厌的乐队.所以选择的结果应该是:
+------+
| BAND |
+------+
| 2 |
| 3 |
| 4 |
+------+
Run Code Online (Sandbox Code Playgroud)
我该如何为此写一个选择?这是我的最后一次尝试:
SELECT * FROM A LEFT JOIN B ON A.BAND = B.HATE WHERE B.HATE IS NULL;
Run Code Online (Sandbox Code Playgroud)
编辑:上面的行已经修复!请参阅下面的注释..."= NULL"与"IS NULL".
我有一个像这样的输入文本字段
<input type="text" class="form-control" [inputTextFilter]="A" [ngModel]="name">
Run Code Online (Sandbox Code Playgroud)
我的指示是:
import { Directive, Input, HostListener } from '@angular/core';
@Directive({
selector: '[inputTextFilter]'
})
export class InputTextFilterDirective {
@Input('inputTextFilter') params: string;
@HostListener('keypress', ['$event'])
onKeyUp(event: KeyboardEvent) {
console.log('got parameters: '+this.params);
}
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个名为"inputTextFilter"的指令,我想传递"A"参数.我传递的参数始终显示为未定义.
我在下面有一个简单的表BIRDCOUNT,显示在任何一天计算了多少只鸟:
+----------+
| NUMBIRDS |
+----------+
| 123 |
| 573 |
| 3 |
| 234 |
+----------+
Run Code Online (Sandbox Code Playgroud)
我想创建一个频率分布图,显示计算一些鸟的次数.所以我需要MySQL来创建类似的东西:
+------------+-------------+
| BIRD_COUNT | TIMES_SEEN |
+------------+-------------+
| 0-99 | 17 |
| 100-299 | 23 |
| 200-399 | 12 |
| 300-499 | 122 |
| 400-599 | 3 |
+------------+-------------+
Run Code Online (Sandbox Code Playgroud)
如果鸟类数量范围固定,这将很容易.但是,我从来不知道看到多少只鸟的最小值/最大值.所以我需要一个select语句:
我不知道#2是否可以在一个选择中,但是任何人都可以解决#1?
我最近需要向类添加一个信号,所以我将类更改为继承自QObject并将Q_OBJECT宏添加到类定义中.由于这样做,我在下面的类别行中得到"vtable for CLICommand'的信号未定义引用错误"错误:
// File clicommand.h
#include <QString>
#include <QStringList>
#include <QTcpSocket>
#include "telnetthread.h"
class CLICommand : public QObject
{
Q_OBJECT
public:
CLICommand(TelnetThread *parentTelnetThread);
signals:
void signal_shutdown_request();
private:
TelnetThread *m_parentTelnetThread;
Run Code Online (Sandbox Code Playgroud)
以及第二个错误"在'vtable for CLICommand''的信号未定义的引用错误"在下面的行上(初始化成员变量):
// File clicommand.cpp
#include <QDebug>
#include <QTcpSocket>
#include <QTextStream>
#include "version.h"
#include "clicommand.h"
#include "telnetthread.h"
#include "logger.h"
CLICommand::CLICommand(TelnetThread *parentTelnetThread)
: m_parentTelnetThread(parentTelnetThread)
{
}
Run Code Online (Sandbox Code Playgroud)
就在这里我发出信号的地方.emit行生成对`CLICommand :: signal_shutdown_request()'的错误未定义引用:
// file shutdown_clicommand.cpp
#include <QIODevice>
#include "clicommand.h"
#include "logger.h"
#include "version.h"
void CLICommand::execute_shutdown(const …Run Code Online (Sandbox Code Playgroud) 我正在尝试提取主要发行版版本(以ansible_facts字符串形式保存)并将其存储为整数以供以后使用<或>与整数进行比较。当我这样做时:
- set_fact:
distromajor: "{{ ansible_facts['distribution_major_version'] | int }}"
Run Code Online (Sandbox Code Playgroud)
我发现distromajorHold"7"而不是7.
所以后来比较失败。事实上,我让它发挥作用的唯一方法就是像这样进行比较:
(distromajor|int >=6) and (distromajor|int <= 8)
Run Code Online (Sandbox Code Playgroud)
这是预期的行为吗?
为什么我不能将发行版主要版本保存为 int?
最接近的SO问题没有解释为什么后来的整数比较失败而没有distromajor在比较时将变量重新转换为整数。
我已经在linux中创建了一个HUP信号处理程序,只有C++应用程序(根据QT链接),我在QT Creator 5.1中工作.代码在QT Creator中编译并运行良好,但是当我从命令行发送HUP信号时,QT Creator会以弹出窗口停止:
"劣质停止,因为它接收到来自操作系统的信号"以及HUP信号信息.
如果我单击调试面板上的CONTINUE按钮,我会在代码中看到来自我的HUP信号处理程序的qDebug语句打印输出.我的问题是,这是正常的行为吗?当我的代码正确处理HUP信号时,为什么QT Creator会捕获HUP并停止我的代码?
我创建了一个简单的指令来修剪我的输入文本(我打算稍后扩展它的功能 - 所以请不要推荐一个简单的 onkeyup 函数),我想让一个指令起作用。
我像这样使用我的指令:
<input type="text" class="form-control" inputTextFilter [(ngModel)]="data.name">
Run Code Online (Sandbox Code Playgroud)
我的指令如下:
import { Directive, HostBinding, HostListener } from '@angular/core';
@Directive({
selector: '[inputTextFilter]'
})
export class InputTextFilterDirective {
value: string;
constructor() {
console.log('contrusted InputTextFilterDirective');
this.value = '';
}
@HostListener('change')
onChange($event) {
console.log('in change InputTextFilterDirective');
this.value = $event.target.value.trim();
console.log(this.value);
}
}
Run Code Online (Sandbox Code Playgroud)
我看到构造函数消息记录到窗口,但更改消息从未出现,并且我的值从未更改(未从末尾修剪空格)。我怀疑 hostListeners 和 hostProperties 不正确,因为我看到了很多相互矛盾的例子......但无法确认正确的方法。
这有什么问题?
angular ×4
mysql ×2
qt ×2
ansible ×1
button ×1
c++ ×1
count ×1
distribution ×1
frequency ×1
highcharts ×1
linux ×1
moc ×1
qt-creator ×1
qt-signals ×1
qtcore ×1
reset ×1
rxjs ×1
select ×1
signals ×1
typescript ×1
websocket ×1
zoom ×1