2015年9月1日火曜日

chaiのTypeError: object is not a functionエラー

下記2つ(ES6とES5)は同じ意味
・import {expect} from 'chai';
・var expect = require('chai').expect;

このため、下記のように書いてしまうと
var expect = require('chai');

expect(xxx).to.equal(xxx)のところで
TypeError: object is not a function
のエラーが出る。

うっかりしてると間違えることが多い…。

2015年8月3日月曜日

Ubuntuデスクトップのフォルダの英語化

Ubuntu14.04 LTS デスクトップのフォルダが、デフォルトで日本語になっているので、
コンソールから使うといろいろ不便…。

同僚から聞いたのが、下記のコマンド

$ LANG=C xdg-user-dirs-gtk-update

そのままコンソールから実行。
実行後、ダイアログが出る(デスクトップ→Desktop、ダウンロード→Download、etc)ので
問題なければOK。

すでにデスクトップやダウンロードなどのフォルダにファイルがあるのであれば、
デスクトップとDesktopというように日本語と英語のフォルダが2つ存在してしまう。
その場合は、適宜、英語名のほうのフォルダにコピーしてあげる。

そのあと、マシンを再起動。
再起動しないと、デスクトップにファイルが置けなかった。
デスクトップという日本語のフォルダを探しに行っていたので。。。
(もしかしたらダウンロードファイルも置けないのかもしれない。)

問題なければ、ファイルコピー後の日本語フォルダを削除。

2015年7月13日月曜日

ES6 Separate Operator

...arg
三点リーダ(three dots)ってなんだろう?ってことで調べてみたらSeparate Operatorというものらしい。

うまく説明できないけど、配列を展開してくれるようなものらしい。

<サンプル1>
Separate Operatorあり
var test = [{a: 1, b:2}]
console.log(...test)

Object {a: 1, b: 2}


Separate Operatorなし
var test = [{a: 1, b:2}]
console.log(test)

[Object]
  0: Object
    a: 1
    b: 2


<サンプル2>
Separate Operatorあり
var arr1 = [1,2,3];
var arr2 = [4,5,6];
arr1.push(...arr2);
console.log(arr1)

[1, 2, 3, 4, 5, 6]


Separate Operatorなし
var arr1 = [1,2,3];
var arr2 = [4,5,6];
arr1.push(arr2);
console.log(arr1)

[1, 2, 3, Array[3]]
  0: 1
  1: 2
  2: 3
  3: Array[3]


2015年7月2日木曜日

Bootstrapで印刷時にボタンが真っ黒

Bootstrapのボタンを印刷するとボタンが真っ黒になる…
正確にはBootstrap Material Designのボタンを使ってるけどね。


そんな時は、ボタンのclass に hidden-print を使うと印刷時にボタンが印刷されなくなる。
印刷されないのが嫌な場合は、通常のボタンを追加して、 visible-print-block をclassに設定すると印刷時の時だけ、通常のボタンになる。

bootstrapっていろいろ考えられてるんだな。

Bootstrapの印刷時のレイアウト

Bootstrap3を使っているけど、印刷時にスマホのレイアウトになってしまうらしい。

1行に3つコンポーネントがあると、3行になるイメージ。


下記を適用すると解消はするけど、コンポーネントが多いと一部文字列が切れたり…
https://gist.github.com/donnierayjones/6fd9802d992b2d8d6cfd


どっちが良いんだろうな。。。
ちなみに適用するときは、
.col-sm-1, .col-sm-2 の部分を適宜 .col-md-1, .col-md-2, というふうに自分が使ってるクラスに合わせる必要あり