LoginSignup
1
0

More than 5 years have passed since last update.

angular-notifyで通知が自動で非表示にならないようにする方法

Last updated at Posted at 2018-06-15

angular-notifyとは

angular-notifyは、通知の表示処理についてのangularjs拡張ライブラリーです。

デモページがあるのでこちらで動作を試してみると分かりやすいです。

ソースコードはgithub上にあります。

angular-notifyの使用方法

notify()を呼ぶことで通知を表示することができます。

引数にはstringまたはobjectを取ることができます。

objectのパラメータにはたとえば以下のものを指定できます。

パラメータを引数として渡すことで通知の表示の仕方を変えることができます。
- message - 通知に表示するテキストを指定できます。
- duration - 通知が表示される時間(ミリ秒)を指定できます。
- position - 通知の表示される位置を指定できます。値にはright, center, leftのみが指定できます。

他にも引数として渡せるパラメータがあるので詳細はREADME.mdを見てください。

通知が自動で非表示にならないようにする方法

それでは本題に入ります。

README.mdを読むと通知を非表示にしないためにはduration0を指定するとありました。

しかし0にセットしたのに通知が自動的に非表示にされてしまいうまく行きませんでした。

仕方がないのでソースコードを読んでみると、

どうやらangular-notify.jsの21行目が上手くいかない原因のようでした。

args.duration = args.duration ? args.duration : defaultDuration;

0falseとして評価されるため、args.duration0ではなくデフォルト値が入ってしまっていました。

これを回避するには0の代わりに"0"を使用するなどが考えられます。

Boolean(String)trueとして評価されるため"0"を指定すればargs.duration"0"が入ります。

実際に表示を自動的に消す処理は104~108行目にあり、

if (args.duration > 0){
  $timeout(function(){
    scope.$close();
  },args.duration);
}

"0" > 0falseとして評価されるので$timeoutがセットされず自動的に非表示にならないようになります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0