JavaScript
個別のリクエストではなくインターセプターを使ってまとめて追加。 インターセプターを作って$httpProvider.interceptors配列に追加するだけ。 下記コードは、サーバからのtokenを取得済みなら、Authorizationヘッダーに追加してリクエストするようになる例…
前提 AngularJS1.3からOne-time bindingという最初の一回だけバインディングする仕組みが入った。 $resourceはpromiseではなく、先に空配列を返す。 問題 なので、下記のようにngRepeatをOne-time bindingにすると、空配列評価されて、何も表示されなくなっ…
grunt-filerevを使って、CSSファイルや画像ファイルにhashがbuild時につくようにしている場合に、grunt-angular-templatesを使う場合はどうするか generator-angularで作ったAngularJSプロジェクトのbuildタスクではgrunt-useminの処理中、grunt-filerevの処…
ちなみにgenerator-angularで作成したプロジェクト。 developmentやbuildではgrunt-angular-templatesを使っているが、テストには、karma-ng-html2js-preprocessorを使った。 インストール % npm install karma-ng-html2js-preprocessor --save-dev karma.co…
前の記事のでいえばchildItemディレクティブのテストの書き方 コード再掲 #parentChild.coffee "use strict" #parent #controller angular.module("myApp") .controller("ParentItemCtrl", ($scope, Child) -> #....... @removeChildItem = (childId, index)…
コードはこんな "use strict" #parent #controller angular.module("myApp") .controller("ParentItemCtrl", ($scope,Child) -> #....... coffeeなので自動で波括弧をつけてくれるが明示的につけておいた ............ { removeChildItem: (childId, index)-…
前提 AngularJSでコントローラをネストして階層化すると、子コントローラ側から親コントローラのスコープを利用可能になる。 問題 子コントローラのユニットテストを書こうとした場合に、子コントローラ側で親コントローラのプロパティやメソッドを使用して…
例えば記事へのコメント投稿後に、そのフォームを再利用する際に、データを初期化しただけだとエラー表示が出てしまう。 ので、$dirtyがfalse($pristineがtrue)の状態に戻したい。 いわゆるブログのコメント投稿とかのよくあるやつ。 form.FormControllerの$…
例えばこういう感じのresourcesを定義したとする。 APIの例。newとeditは省いた。 # routes.rb namespace :api, defaults: { format: :json } do resources :reports, shallow: true do resources :comments, except: [:new, :edit] end end 定義されるルー…
$sceをDIしてるやつ、例えばこちらのようなののテストを書く場合。 # newlines_spec.coffee "use strict" describe "Filter: newlines", -> beforeEach module "myApp" newlines = {} beforeEach inject ($filter) -> newlines = $filter "newlines" it "\nを<br />…
まだ理解が浅い模様。 注意というかexpectとwhenの違いの話。 前提 AngularJSにはngMockE2EというE2E用のモックが用意されており、こちらを使用することにより、サーバを用意しなくてもモックでテストが書ける。 * ngMockE2Eの$httpBackendにはngMockの$http…
例えば$httpのリクエストをインターセプトして、Authorizationヘッダーにトークンを付与するInterceptorを作成したとする。 この場合、このInterceptorのサービスをどのようにテストするのがよいのか? で、調べたら大変素晴らしい記事があったのでそちらを…
公式のサンプルでいうと、ModalInstanceCtrl部分のテスト。 // modal-demo.js var ModalDemoCtrl = function ($scope, $modal, $log) { $scope.items = ['item1', 'item2', 'item3']; $scope.open = function (size) { var modalInstance = $modal.open({ te…
grunt-wiredep使用の環境でAngularJSのui-dateでロケール指定したい&jquery-uiのCSSを当てたいと。 bower.jsonに追加してbower install bower.json { "dependencies": { "angular-ui-date": "latest" } } ui-dateがjquery-uiに依存しているので、jquery-ui…
より正確にいうとgrunt-wiredep使用の環境でangular-momentでロケール指定したい、ということ。 angular-momentをインストールする % bower install angular-moment --save これでmomentも依存関係でインストールされて、wiredepで差し込まれてめでたしめで…
yeomanのgenerator-angularで作ったプロジェクトで、grunt-wiredepを使っているので、素直にE2Eテストでangular-mocksを使おうとすると、bower.jsonのdevDependenciesからdependenciesに移す必要がある。 // bower.json { "name": "MyApp", "version": "0.0.…
AngularJSリファレンス購入して読了。これは良い本。 で、フィルタのi18nの項をみて、早速いれてみたら、grunt-wiredepを使っているGruntのタスクで注入出来ないとメッセージが出て、htmlファイルのコメントの間にi18nへのscriptタグが挿入されない。 ちなみ…
インストール % npm install jit-grunt -D % npm uninstall load-grunt-tasks -D jit-gruntを使うようにGruntfile.coffeeを書き換え。 後、watchにspawn: falseも追加しといた。 #Gruntfile.coffee module.exports = (grunt) -> # Load grunt tasks automati…
AngularJSのminify対策をしてくれるアレ。 例によって、generator-angularで作ったプロジェクトでの話。 grunt-ng-annotateをインストールしてgrunt-ngminを外して、記述をngminからngAnnotateにしただけでいけました。 % npm install grunt-ng-annotate -D …
そっけないです..... karma-spec-reporterをインストールして設定する。 % npm install karma-spec-reporter -D # karma.conf.coffee plugins: [ 'karma-phantomjs-launcher' 'karma-jasmine' 'karma-coffee-preprocessor' + 'karma-spec-reporter' 'karma-c…
Action Controller Overview — Ruby on Rails Guides ↑ここに書いてある。 config/initializers/wrap_parameters.rbはRails4.1だとデフォルトで多分こうなっている。↓ Be sure to restart your server when you modify this file. # This file contains sett…
ココを見ましょう。 ありがとうございます。 やった内容 // package.json "karma-coverage": "git+https://github.com/mokemokechicken/karma-coverage.git#master", % npm l #karma.conf.js 'karma-phantomjs-launcher' 'karma-jasmine' 'karma-coffee-prep…
generator-angularで作ったプロジェクトにProtractorでのe2eテストを入れたやつをVagrant環境でアレする。 コレの続き https://github.com/exratione/protractor-selenium-server-cookbook:このクックブックを追加してよしなに設定する。 で、node_modules/p…
Yeomanで作ったプロジェクト関係なくて、単にVagrant環境で開発する時にホスト側のブラウザとかで確認したい時の話。 こういう場合にgrunt-contrib-connectの設定で、こういうのを見かける↓ #Gruntfile.coffee connect: options: port: 9000 livereload: 357…
generator-angularはkarma,jasmineのtestは用意されているけど、e2eテストはAngular Scenario Runner(非推奨)が入ってはいるものの使えるようになってないので、Protractorを入れる。 前提 yo angular --coffee でフロントエンド部を生成済みとする*1。 作業…
grunt-connect-proxyを使って、rails server と、grunt serve の2つを叩いてLiveReloadで開発出来るようにしようという話。 あとフロント側をビルドするとRailsのpublicディレクトリに静的ファイルとして配備するように。 RailsのAsset PipelineにAngularJS…
メモ。 //gulpfile.js require('coffee-script/register'); require('./gulpfile.coffee'); //gulpfile.coffee gulp = require('gulp') gulp.task 'default', () -> console.log('gulp!') 参考。 http://efcl.info/2014/0123/res3625/ http://safx-dev.blogs…
node-webkitで作ったアプリで、データロード処理と保存処理部分をそれぞれ書き換えてみた。 PromiseのライブラリはBluebirdを使ってみた。 あと、cheerioをDOMのパースに使用。 FTPは、jsftpを使用。 データロード処理の流れ(load) 1. FTPでデータ取得 2. FT…
素のJavaScriptで書いて出来上がったnode-webkitアプリを今後の参考とするためにCoffeeScript化,TYpeScript化。 ライブラリ以外で書いたJSコードは300行程度と、かなり小規模なアプリ。*1 bowerで入れたのがBootstrap,Bootstrap v3 datetimepicker,jQuery,Mo…
node-webkitのJavaScript Contextでのrequireでのパス解決でハマる場合がある。 例えばこんなファイル構成で index.html js index.js(index.ts) fileUploader.js 各ファイルがこんな感じ。 <html> <head > <meta charset="utf-8" /> ................. <script src="js/index.js"></script> </body> </html> //js/index.js ........…