2015/11/18

AngularJsでよく使うAPI

angular.module()などはAngularで実装する際、必ずと言っていいほど使用すると思いますが、そのほかのAngularのAPIで便利だなと思った関数あったので、書いてみました。 angular.copy オブジェクトまたは配列をディープコピーします。 AngularJsでは同じ変数を参照してしまうと、双方向データバインディングの影響で、意図していない場所の値が変更されてしまう可能性があるので、その際によく使いました。 $scope.user = 'user1'; var user1.name = angular.copy($scope.user); angular.forEach いわゆるforEachしてくれます。obj内の各項目に対し、それぞれiterator関数を実行してくれる。iteratorの関数は、iterator(value, key)として実行され、valueにはオブジェクトのプロパティの値または配列の要素が入り、 keyにはオブジェクトのプロパティのキーまたは配列のインデックス番号が入ります。 var lists={ item1:'name1', item2:'name2', item3:'name3' }; angular.forEach(lists, function(val, key) { // ~~ }); angular.merge 任意の複数オブジェクトを一つのオブジェクトにマージしてくれます。 配列でも使用できるようです。 var obj1={ item1:'name1', item2:'name2' }; var obj2={ item3:'name3', item4:'name4' }; var mergeObj = angular.merge(obj1, obj2); angular.isDefinedなどis〜 対象が定義されているか否かを調べてくれます。定義されていればtrueが返ります。他にもisDateとかisArrayとかあり、条件分岐で複雑な処理を書かなくて良いので便利です。 var val = 'key'; angular.isDefined(val); // true 他にも便利なAPIが多数用意されているようなので、underscore.jsなど使用する前に一度目的のapiがないかどうか調べてみても良いかもですね。