2014-02-04 2 views
28

В настоящее время я просто звоню toastr.success('my message') внутри контроллера, где требуется. Это прекрасно работает, но для меня это немного грязно.Использование toastr в способе AngularJS

Есть ли «лучшая практика» или рекомендуется использовать «угловые» способы использования toastr.js library?

ответ

60

Да. Довольно просто:

app.factory('notificationFactory', function() { 
    return { 
     success: function (text) { 
      toastr.success(text,"Success"); 
     }, 
     error: function (text) { 
      toastr.error(text, "Error"); 
     } 
    }; 
}); 

Решить завод в контроллере. Настройте сообщения, уведомления/etc на заводе.

Несмотря на то, что код добавляет еще одну абстракцию, он действительно эффективен.

+8

Не говоря уже о том, что очень легко издеваться над этой фабрикой в ​​тестовом случае. –

+3

Существует [AngularJS port toastr] (https://github.com/jirikavi/AngularJS-Toaster), который может быть полезен. –

+0

Я также обертываю тостер, а затем добавляю «toastr» на фабрику: 'app.value ('toastr', toastr)' –

Смежные вопросы