在我的Graphviz图形(用DOT编写)中,我希望每个节点都有一个标签,但除此之外,我希望一些节点有一个小标题,表示该节点的一些其他唯一值.例如,如果这是历史图表,节点的标签可能类似于"乔治华盛顿的诞生",标题可能是"参见:美国革命".
这是相当灵活的,因此标题不一定需要在节点内部,但我确实需要一些其他方式来放置明显不属于标签的文本(例如,是不同的大小,可能是不同的颜色)并且位于不同的位置,但仍然显然是节点的一部分.
有没有办法做到这一点?
我正在尝试使用Amazon AWS命令行工具查找没有指定标记的所有实例.
使用标记查找所有实例非常简单,例如
ec2-describe-instances --filter "tag-key=Name"
Run Code Online (Sandbox Code Playgroud)
但是,如何将该过滤器反转为仅返回没有标记"Name"的实例?
我正在尝试通过Nexus 代理node-sass和其他npm库,但是当node-sass的安装后步骤尝试提取文件时遇到问题https://github.com/sass/node-sass/releases/从github 下载/ v3.10.1/linux-x64-48_binding.node.我是公司防火墙的后面,所以我唯一的选择就是让Nexus代理我需要的所有文件.
是否有可能以某种方式将此单个文件添加到Nexus,以便它能够代理并在发送请求时将其发送到https://github.com/sass/node-sass/releases/download/v3.10.1 /linux-x64-48_binding.node?
我想为我的解析器编写一个单元测试,需要ActivatedRouteSnapshot像下面那样接受它的构造函数:
export class MyResolver {
constructor () {
// ...
}
resolve (private route: ActivatedRouteSnapshot) {
callFoo(route.params.val);
}
};
Run Code Online (Sandbox Code Playgroud)
但在我的单元测试中,用模拟数据提供激活路由快照的最佳方法是什么?当我尝试使用我需要的属性创建一个对象时,我收到一个错误,它无法转换为ActivatedRouteSnapshot:
it('should call foo', inject([MyResolver], async (myResolver: MyResolver) => {
const mockRoute = {
params: {
val: '1234'
};
};
sinon.spy(callFoo);
myResolver.resolve(mockRoute); // This is the line that errors
expect(callFoo.calledWith('1234')).to.be.true;
}));
Run Code Online (Sandbox Code Playgroud)
错误:
Type '{ params: { val: string; }; }' cannot be converted to type 'ActivatedRouteSnapshot'.
Run Code Online (Sandbox Code Playgroud)
如何提供模拟ActivatedRouteSnapshot传递给我的解析器?
我在一个webpack项目中运行tsc,用"core-js": "registry:dt/core-js#0.0.0+20160725163759"和"node": "registry:dt/node#6.0.0+20160909174046"
其他日期属性工作正常:
private dateToString (date: Date) {
let month = date.getMonth();
let day = date.getDate();
let year = date.getYear() + 1900;
let dateString = `${month}/${day}/${year}`;
return dateString;
}
Run Code Online (Sandbox Code Playgroud)
打字稿识别date.getMonth并且date.getDate很好,但在date.getYear它上面给出了
Property 'getYear' does not exist on type 'Date'.
我错过了什么定义?
我在公司防火墙后面,用Nexus代理npm存储库.在安装后步骤中,node-sass尝试从https://github.com/sass/node-sass/releases/download/v3.10.1/linux-x64-48_binding.node卷曲, 但由于防火墙而失败.添加防火墙规则以让请求通过不是一种选择.如果也可以通过Nexus代理Github,这可能是一个选项,但是当我尝试时,我无法使该配置正常工作.
这也适用于Jenkins构建,因此让开发人员npm rebuild node-sass在安装失败后执行操作不是一个选项.我需要安装才能工作,否则Jenkins构建将失败.
是否有任何方法可以从npm注册表安装node-sass而无需在安装后步骤中从其他来源下载任何内容?
我意识到还有其他库设计用于与Zombie一起使用类似jQuery的语法,但出于我的目的,我特别希望/需要使用jQuery本身以保持与一些早期编写的代码的兼容性.
我安装了npm jQuery包,我一直在尝试将jQuery导入到我的脚本中,然后使用Zombie返回的窗口初始化它,如下所示:
var Zombie= require("zombie"),
$ = require("jquery")
, zombie = new Zombie();
zombie.visit("http://www.mysite.com", function (err, browser, status) {
if(err) {
console.log("Error: " + err);
}
//Initialize a new jQuery instance with the current window returned by Zombie
var $window = $(browser.window);
//Get an actual jQuery object so we can search for stuff
var document = $window("body");
var inputBoxUsername = document.find("input#username");
console.log(inputBoxUsername.html());
});
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为它说没有html()功能,jQuery实际上似乎没有返回我期待的对象.
有没有办法在僵尸中使用jQuery?
第一:是的,我事先用谷歌搜索过,而且出现的解决方案对我不起作用.
上下文
我有一个调用服务的Angular 2组件,并且在收到响应后需要执行一些数据操作:
ngOnInit () {
myService.getData()
.then((data) => {
this.myData = /* manipulate data */ ;
})
.catch(console.error);
}
Run Code Online (Sandbox Code Playgroud)
在其模板中,该数据将传递给子组件:
<child-component [myData]="myData"></child-component>
Run Code Online (Sandbox Code Playgroud)
这导致了孩子myData未定义的错误.上面发布的谷歌搜索结果谈到了使用,Resolver但这对我不起作用.
当我创建一个新的解析器时:
import { Injectable } from '@angular/core';
import { Resolve, ActivatedRouteSnapshot } from '@angular/router';
import { Observable } from 'rxjs/Rx';
import { MyService } from './my.service';
@Injectable()
export class MyResolver implements Resolve<any> {
constructor(private myService: MyService) {}
resolve (route: ActivatedRouteSnapshot): Observable<any> {
return Observable.from(this.myService.getData());
}
}
Run Code Online (Sandbox Code Playgroud)
app.routing.ts
const appRoutes: …Run Code Online (Sandbox Code Playgroud) 目前,在 Angular 中,您可以通过对其中一个父路由应用路由器保护来限制对所有子路由的访问:
export const routes: Routes = [
{
path: 'my-account',
canActivate: [IsUserLoggedIn],
children: [{
path: 'settings',
component: SettingsComponent
}, {
path: 'edit-profile',
component; EditProfileComponent
}]
}
];
Run Code Online (Sandbox Code Playgroud)
这有助于避免canActivate在每条路线中重复守卫。但是现在当我想在my-account应该公开访问的情况下引入第三条路线时会发生什么?例如,也许my-account/help每个人都应该能够访问一个可公开访问的帮助页面,即使他们没有登录:
}, {
path: 'help',
component: HelpComponent,
// Somehow make exception to canActivate guard above
}, {
Run Code Online (Sandbox Code Playgroud)
是否有一种干净的方法可以做到这一点,或者是唯一的方法来破坏路由的组织并将路由器保护手动应用于每个子路由,除了“帮助”页面?
我正在读的书说,当您的类包含一个引用或const成员时,使用编译器生成的复制构造函数或赋值运算符将不起作用。例如,
#include <iostream>
#include <string>
using namespace std;
class TextBlock
{
public:
TextBlock (string str) : s(str) {
cout << "Constructor is being called" << endl;
}
string& s;
};
int main () {
TextBlock p("foo");
TextBlock q(p);
q = p;
cout << "Q's s is " << q.s << endl;
return(0);
}
Run Code Online (Sandbox Code Playgroud)
根据我的书,这两行TextBlock q(p);和q = p;都应返回编译器错误。但是使用Linux的g ++编译器时,我只会看到一行错误。q = p;当我将其注释掉时,这可以正常工作并且代码可以编译。正确的s输出给Q,因此显然是由编译器生成的副本构造函数复制的。将行更改为时string& s;,我得到相同的结果const string s。
C ++是否进行了一些更改,现在允许自动为引用和const对象生成复制构造函数,但不允许赋值运算符生成?还是我只是不正确地理解这本书?有什么想法吗?
c++ compiler-construction copy-constructor assignment-operator
angular ×3
nexus ×2
node-sass ×2
c++ ×1
command-line ×1
date ×1
dot ×1
filter ×1
github ×1
graphviz ×1
jquery ×1
resolver ×1
typescript ×1
unit-testing ×1
zombie.js ×1