我有一个数据集,我用d3.js绘图.x轴表示时间(以分钟为单位).我想以一种hh:mm格式显示这个轴,我找不到在d3中干净利落的方法.
我的轴代码如下:
svg.append('g')
.attr('class', 'x axis')
.attr('transform', 'translate(0,' + height + ')')
.call(d3.svg.axis()
.scale(x)
.orient('bottom'));
Run Code Online (Sandbox Code Playgroud)
这会在几分钟内生成看起来像标签[100, 115, 130, 140]等的标签.
我目前的解决方案是text在生成元素后选择元素,并使用函数覆盖它们:
svg.selectAll('.x.axis text')
.text(function(d) {
d = d.toFixed();
var hours = Math.floor(d / 60);
var minutes = pad((d % 60), 2);
return hours + ":" + minutes;
});
Run Code Online (Sandbox Code Playgroud)
这输出轴刻度等[1:40, 1:55, 2:10].
但这感觉很笨拙并且避免使用d3.format.有没有更好的方法来制作这些标签?
最近我写了一个Ruby程序来确定"Scramble Squares"瓷砖拼图的解决方案:
我使用TDD来实现其中的大部分,导致测试看起来像这样:
it "has top, bottom, left, right" do
c = Cards.new
card = c.cards[0]
card.top.should == :CT
card.bottom.should == :WB
card.left.should == :MT
card.right.should == :BT
end
Run Code Online (Sandbox Code Playgroud)
这很适合于下级"辅助"的方法:识别瓦片的"侧",确定是否一个瓦片可以被有效地放置在栅格等
但是在编写实际算法来解决难题时遇到了问题.由于我不知道问题的有效可行解决方案,我不知道如何首先编写测试.
我最终编写了一个非常丑陋,未经测试的算法来解决它:
def play_game
working_states = []
after_1 = step_1
i = 0
after_1.each do |state_1|
step_2(state_1).each do |state_2|
step_3(state_2).each do |state_3|
step_4(state_3).each do |state_4|
step_5(state_4).each do |state_5|
step_6(state_5).each do |state_6|
step_7(state_6).each do |state_7|
step_8(state_7).each do |state_8|
step_9(state_8).each do |state_9|
working_states << state_9[0]
end
end
end
end …Run Code Online (Sandbox Code Playgroud) 我正在尝试npm install一个软件包,但由于缺少传递依赖性而无法安装.
(我不认为细节很重要,但我们代理Nexus NPM注册表,它不支持范围模块.我们的依赖项之一依赖于尝试下载@bahmutov/parse-github-repo-url模块,我们得到404.)
在我npm-debug.log看来我们注册表中的404:
npm ls [package-name]
但我无法分辨哪个依赖试图将其拉下来.
通常我会运行,node_modules但这对于一个空node_modules文件夹的项目不起作用,这就是这里发生的事情.
我们正在使用npm3,它有一个平坦的依赖树,所以我不能打开部分水合的package.json文件夹,看看它的位置.
有没有办法检查npm install文件并确定计算的依赖关系树而不依赖于npm install成功?
其中一个内置的Checkstyle检查是RequireThis,只要你没有预先添加this.到本地字段或方法调用,它就会关闭.例如,
public final class ExampleClass {
public String getMeSomething() {
return "Something";
}
public String getMeSomethingElse() {
//will violate Checkstyle; should be this.getMeSomething()
return getMeSomething() + " else";
}
}
Run Code Online (Sandbox Code Playgroud)
我正在努力解决这个检查是否合理的问题.在上面的例子中,ExampleClass是final,它应该保证getMeSomething应该调用"正确"的版本.此外,似乎有些情况下您可能希望子类覆盖默认行为,在这种情况下,要求"this"是错误的行为.
最后,似乎过于防御性的编码行为只会使源头变得混乱,并且更难以看到实际发生的事情.
所以在我向我的架构师建议这是一个不好的启用检查之前,我想知道是否有其他人启用了这项检查?你是否因为失踪而发现了一个严重的错误this?
我的用例:我正在构建一个Yeoman生成器,该生成器可以修改TypeScript文件。类似于:
import语句Yeoman建议针对此任务使用AST解析器:
最可靠的方法是解析文件AST(抽象语法树)并对其进行编辑。
诸如jscodeshift之类的工具对于JavaScript文件而言相当简单,但它似乎不支持TypeScript。是否有任何类似的工具来解析和修改TypeScript文件的AST?
我正在尝试使用ngUpgrade从ng1移动到ng2,并在升级期间保持我的Karma/Jasmine测试通过,但是我遇到了一个我无法弄清楚的错误.
我已将Service(Data)升级为ng2 @Injectable,并将upgradeAdapter.downgradeNg2Provider其注入我的ng1应用程序.它在生产代码中工作正常.
但是当我尝试在我的测试中注入它时,我得到了这个错误:
Error: [$injector:unpr] Unknown provider: ng2.InjectorProvider <- ng2.Injector <- Data
Run Code Online (Sandbox Code Playgroud)
任何人都有一个在ngUpgrade中间单元测试代码的工作示例?我的堆栈是基于Webpack的.我试过跟踪并转换systemjs指南,但没有任何运气.
karma.conf.js:
module.exports = function (config) {
config.set({
// base path used to resolve all patterns
basePath: '',
// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['jasmine'],
// list of files/patterns to load in the browser
files: [{ pattern: 'spec.bundle.js', watched: false }],
// files to exclude
exclude: [],
plugins: [
require('karma-phantomjs-launcher'),
require('karma-jasmine'),
require('karma-webpack')
], …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个将由 Angular 应用程序使用的自定义元素。自定义元素将接受一个道具并可能对其进行操作。
我的理解是,我可以使用“盒子里的香蕉”来处理这种绑定,也就是<custom-element [(foo)]="bar">转换为<custom-element [foo]="bar" (fooChange)="bar = newBar">,等等。
我的角度模板:
<an-el [(clicked)]="isClicked"></an-el>
<p>Did you click a button? {{ isClicked }}</p>
Run Code Online (Sandbox Code Playgroud)
我的自定义元素调度一个事件:
this.dispatchEvent(new CustomEvent('clickedChange', { bubbles: true, detail: true }));
但它似乎将整个 CustomEvent 绑定到isClicked:
Did you click a button? [object CustomEvent]
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
这是我的应用程序(在 Chrome 中运行):https : //stackblitz.com/edit/angular-nlguf4
本质上,我想扩展 Angular CLI 的代理,以启用我们组织使用的一些自定义 Express 中间件来支持独特的身份验证模型。
Create React App通过公开 Express 应用程序实例并让您app.use()拥有自己的中间件来支持这一点。
我找不到 Angular CLI 来支持这一点的方法。不弹出这个可行吗?
我想创建一个Preact组件,让人们使用它,即使他们没有构建Preact应用程序.
示例:我想<MyTooltip>在Preact中构建一个组件,将其捆绑(与Preact运行时一起),并让人们将其作为脚本标记加载,纯粹以声明方式使用它,可能如下:
<script src="https://unpkg.com/my-tooltip/my-tooltip-bundled.js">
<my-tooltip content="Tooltip content">Hover here</my-tooltip>
Run Code Online (Sandbox Code Playgroud)
有没有办法捆绑一个组件,使其包含Preact运行时,我的库代码和钩子<my-tooltip>元素?
换句话说,我可以将Preact组件作为自定义元素进行互操作,类似于ReactiveElements吗?
angular ×3
angular-cli ×1
checkstyle ×1
d3.js ×1
java ×1
jscodeshift ×1
label ×1
ng-upgrade ×1
npm ×1
preact ×1
puzzle ×1
scramble ×1
tdd ×1
typescript ×1
yeoman ×1