Archives by date

You are browsing the site archives by date.

【AngularJS】$resourceのquery()メソッドでパラメーターを渡せるようにする。

$resourceオブジェクトのquery()メソッドを実装し直してやればOK。

coreCtrls.factory('hoge', ['$resource', function($resource) {
    return $resource(location.pathname + 'api/hoge/:id', {
        id: '@id'
    }, {
        'query': {
            method: 'GET',
            params: {
                customParams: 0
            },
            isArray: true
        }
    });
}])

これでcustomParams=0というパラメーターがデフォルトでGETで送信されるようになる。
パラメータを指定したい場合は下記の通り。

hoge.query({customParams: 1})

これで「customParams=1」が送信される。
コールバックを指定したい場合は第2引数に渡せばOK。

 

【AngularJS】クリックした要素を$eventオブジェクトから取得する。

angularで要素を取得したかった時に困ったのでメモ。

ng-clickディレクティブで実行する関数に$eventを渡してやる。

<ANY
    ng-click="click($event)"
></ANY>

コントローラー側で受け取ったオブジェクトの「target」要素を参照してやればOK。

$scope.click = function($event) {
	console.log($event.target);
}

あとは煮るなり焼くなり好きにすればOK。

 

【UnderscoreJS】RestAPIから取得したJSONなどの中から特定のIDを持つものを削除する。

例えば下記のようなjsonオブジェクトでIDが5の要素のみ削除したいといった場合。

var oldJson = [
    {id: 1, name: 'taro', age: 14},
    {id: 2, name: 'yamada', age: 15},
    {id: 3, name: 'emily', age: 16},
    {id: 4, name: 'bob', age: 17},
    {id: 5, name: 'hanako', age: 18}
];

_.filter()メソッドを用いると便利。

var newJson = _.filter(oldJson, , function(data) {
    return data.id != 5;
})

これでID5のオブジェクトを削除することが出来る。

 

【AngularJS】$resourceにPATCHメソッドを実装する。

その他のメソッドと同様、下記のように実装すればOK。

coreCtrls.factory('hoge', ['$resource', function($resource) {
    return $resource(location.pathname + 'api/hoge/:id', {
        id: '@id'
    }, {
        'patch': {
            method: 'PATCH'
        }
    });
}])

 

【Symfony2.3】FOSRestBundleのserializerで除外変数を指定する。

エンティティ内のジョインしているフィールドでシリアライズしたくない項目がある場合に便利。

use JMS\Serializer\Annotation as JMS;

class Report
{
    /**
     * @JMS\Exclude
     */
    protected $categories;
}

無視したい変数のアノテーションで「@JMS\Exclude」と指定してやればOK。

その他グルーピングなども指定出来る模様。詳細は下記。

http://jmsyst.com/libs/serializer/master/cookbook/exclusion_strategies