小编jus*_*.me的帖子

如何在Chart.js v2中使用两个Y轴?

我正在尝试使用Chart.js创建一个包含两个数据集的折线图,每个数据集都有自己的Y比例/轴(一个在左边,一个在图的右边).

这是我的代码(jsfiddle):

var canvas = document.getElementById('chart');
new Chart(canvas, {
  type: 'line',
  data: {
    labels: [ '1', '2', '3', '4', '5' ],
    datasets: [
      {
        label: 'A',
        yAxesGroup: 'A',
        data: [ 100, 96, 84, 76, 69 ]
      },
      {
        label: 'B',
        yAxesGroup: 'B',
        data: [ 1, 1, 1, 1, 0 ]
      }
    ]
  },
  options: {
    yAxes: [
      {
        name: 'A',
        type: 'linear',
        position: 'left',
        scalePositionLeft: true
      },
      {
        name: 'B',
        type: 'linear',
        position: 'right',
        scalePositionLeft: false,
        min: 0, …
Run Code Online (Sandbox Code Playgroud)

javascript browser graph chart.js

49
推荐指数
2
解决办法
6万
查看次数

在Windows上为Git配置GPG

我安装了Git for Windows,包括Windows 10和Gpg4win上的Git Bash.默认情况下,我必须将我通过Kleopatra创建的所有密钥重新导入到Git Bash中内置的GPG版本中,并且它不允许我设置代理.我需要做的是自动唱歌,这样我不需要每次都输入密码,而只是在给定的时间段内第一次输入密码.怎么可能?

我尝试按照本教程,但gpg2在Git Bash中执行时不使用正确的字符集,因此它无法识别包含非ASCII字符的键.

有什么方法可以解决这个问题吗?在Windows上使用GGP与Git签名的最佳方法是什么?

git bash gnupg pgp character-encoding

17
推荐指数
2
解决办法
7927
查看次数

带有AMD和require.js的打字稿

我正在使用带有AMD和require.js的Typescript,但我无法使用typescript编译器输出将在加载模块后执行的代码.

这是main.ts:

import { foo } from './bar';

foo('world');
Run Code Online (Sandbox Code Playgroud)

这是bar.ts:

export function foo(name: string) {
  alert('Hello ' + name);
}
Run Code Online (Sandbox Code Playgroud)

我使用以下tsconfig.json文件编译它:

{
    "compilerOptions": {
        "alwaysStrict": true,
        "module": "amd",
        "outFile": "client.js",
        "target": "es5"
    },
    "files": [
        "main.ts"
    ]
}
Run Code Online (Sandbox Code Playgroud)

并将其包含在我的HTML中,如下所示:

<script data-main="client/client.js" src="/static/require.js"></script>
Run Code Online (Sandbox Code Playgroud)

但是,生成的JavaScript代码如下所示:

define("bar", ["require", "exports"], function (require, exports) {
    "use strict";
    function foo(name) {
        alert('Hello ' + name);
    }
    exports.foo = foo;
});
define("main", ["require", "exports", "bar"], function (require, exports, bar) {
    "use …
Run Code Online (Sandbox Code Playgroud)

html javascript amd requirejs typescript

14
推荐指数
1
解决办法
1992
查看次数

如何检索本机Windows控件的正确大小?

我用这一行来创建一个EDIT控件:

hMyEdit = CreateWindowEx(
  WS_EX_CLIENTEDGE,
  L"EDIT",
  L"",
  WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,
  10,
  10, 
  200,
  25,
  hParentWnd,
  (HMENU)IDC_MY_EDIT,
  hInst,
  NULL
);
Run Code Online (Sandbox Code Playgroud)

旁边有一个COMBOBOX:

hMyCombo = CreateWindowEx(
  WS_EX_CLIENTEDGE,
  L"COMBOBOX",
  L"",
  WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | WS_VSCROLL | ES_LEFT | CBS_DROPDOWNLIST| CBS_HASSTRINGS,
  220,
  10,
  90,
  200,
  hParentWnd,
  (HMENU)IDC_MY_COMBO,
  hInst, NULL
);
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚有两个问题:

  1. 如果我减小了我的高度(当前为200)COMBOBOX,这也限制了实际下拉列表的最大高度.但是,没有下拉列表的控件的实际高度根本不受影响.是COMBOBOX应该不使用比为下拉列表中的给定的高度吗?

  2. 如何使我的EDIT控件与我的控件的文本字段具有相同的高度COMBOBOX

我无法找到任何有关默认大小的文档,但我希望有适当的方法来控制大小.

总结一下,我的问题是:

  1. 我应该向我申请哪个高度COMBOBOX以允许下拉列表尽可能扩展?

  2. 我应该在哪个高度应用于我和控件EDIT的文本字段具有相同的高度? …

c windows user-interface winapi

9
推荐指数
1
解决办法
172
查看次数

TypeScript中用于元组的泛型包装

我需要向函数添加类型声明,以将元组的元素映射[Foo<A>, Foo<B>, ...]到函数() => [A, B, ...]。如何在TypeScript中实现这一目标?

该示例在结构上与应用程序的相关部分相似:

interface SomethingWithAValue<T> { value: T; }

function collect(array) {
  return () => array.map(a => a.value);
}
Run Code Online (Sandbox Code Playgroud)

这将返回与每个对象关联的值的元组。类型声明collect看起来像什么?

伪代码:

function collect<[SomethingWithAValue<T>...](array: [SomethingWithAValue<T>...]): () => [T...];
Run Code Online (Sandbox Code Playgroud)

根据jonrsharpe的建议进行更新:

interface SomethingWithAValue<T> { value: T; }

function collect<T>(array: SomethingWithAValue<T>[]): () => T[] {
  return () => array.map(a => a.value);
}

type myTupleType = [string, number];

let somethings: [SomethingWithAValue<string>, SomethingWithAValue<number>];
somethings = [{ value: 'foo' }, { value: 5 }];

let fn: …
Run Code Online (Sandbox Code Playgroud)

generics types tuples typescript

7
推荐指数
1
解决办法
1783
查看次数

TypeScript @types 模块无法相互解析

当我使用 npm 像这样安装 TypeScript 定义时

npm install --save @types/express
Run Code Online (Sandbox Code Playgroud)

我无法使用已安装的模块,因为它们无法相互解析。例如,@types/express需要@types/express-static-server-core,但由于@types/express/index.d.ts包含相对路径express-static-server-core,因此无法解析该模块:

node_modules/@types/express/index.d.ts(16,30): error TS2307: Cannot find module 'serve-static'.
node_modules/@types/express/index.d.ts(17,23): error TS2307: Cannot find module 'express-serve-static-core'.
node_modules/@types/serve-static/index.d.ts(15,26): error TS2307: Cannot find module 'express-serve-static-core'.
node_modules/@types/serve-static/index.d.ts(16,20): error TS2307: Cannot find module 'mime'.
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?安装 TypeScript 定义的最佳方法是什么?

据我所知,打字已被弃用,所以我尝试从 @types 安装类型定义,然后使用

tsc --target ES5 --module commonjs index.ts
Run Code Online (Sandbox Code Playgroud)

但它还不起作用。我究竟做错了什么?

node.js typescript typescript2.0

6
推荐指数
1
解决办法
1万
查看次数

使用NDK 13编译独立二进制文件

使用NDK 10版本,我曾经用于ndk-build编译许多不同ABI和多个API级别的独立二进制文件.这些二进制文件将包含在一个应用程序中.但是,我在本文所述的新开发机器上安装了NDK .这导致ndk-bundle我的Android SDK目录中有一个文件夹.我曾经从命令行编译代码,然后将二进制文件复制到我的Android Studio项目的资源中,但我无法弄清楚如何使用NDK 13这样做,所以我尝试按照教程包含我的本机代码Android Studio项目.但是,几乎所有最近的指令都假设一个人想要构建一个库,而不是一个独立的二进制文件,所以我没有走得太远.

如果我弄清楚如何让它工作,我会切换到CMake.我的本机项目具有以下(简化)结构:

如何在Windows 10开发机器上使用Android Studio或NDK从命令行编译?

编辑:

我在build.gradle中使用它:

externalNativeBuild {
    ndkBuild {
        path "../native/Android.mk"
    }
}
Run Code Online (Sandbox Code Playgroud)

Gradle创建了一个.externalNativeBuild包含构建配置的目录,但我无法找到如何实际构建本机代码.运行gradle时不会创建二进制文件.

我找不到有关gradle配置的任何信息ndk-build.

android native android-ndk android-studio ndk-build

6
推荐指数
1
解决办法
1376
查看次数

返回值的模式匹配

我知道我可以使用模式匹配功能参数,如下所示:

fn :: (Integral a) => (a,a) -> (a, a)
fn (x,y) = (y,x)
Run Code Online (Sandbox Code Playgroud)

但是如何匹配返回值?我希望这样的事情:

g :: (Integral a) => a -> a
g z = do
  (x, y) = fn (z, z + 5)
  x `mod` y
Run Code Online (Sandbox Code Playgroud)

这会导致语法错误.有没有办法匹配返回值?基本上,我想将返回的元组拆分为两个变量.

haskell functional-programming tuples pattern-matching

2
推荐指数
1
解决办法
508
查看次数

返回子类型集

假设我有一个定义为的数据类型

data Foo = Hello Int | World Int
Run Code Online (Sandbox Code Playgroud)

和作为

isWorld :: Foo -> Bool
isWorld (World i) = True
isWorld (Hello i) = False

getWorlds :: Set Foo -> Set World
getWorlds = Set.filter isWorld
Run Code Online (Sandbox Code Playgroud)

这不起作用:

Not in scope: type constructor or class `World'
Run Code Online (Sandbox Code Playgroud)

这是有道理的,因为World它只是一个函数,但我不知道如何在Haskell中对此进行建模.使用data正确吗?我希望能够仅为某些实例定义函数:

foo :: World -> Int
foo (World i) = i
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,这会产生同样的错误,因为World它不是一种类型.有没有办法做到这一点,最好没有GHC扩展?

haskell types ghc

2
推荐指数
1
解决办法
145
查看次数