app.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. var baseURL = 'https://vue-demo.firebaseIO.com/',
  2. Users = new Firebase(baseURL + 'users')
  3. Users.on('child_added', function (snapshot) {
  4. var item = snapshot.val()
  5. item.id = snapshot.name()
  6. app.users.push(item)
  7. })
  8. Users.on('child_removed', function (snapshot) {
  9. var id = snapshot.name()
  10. app.users.some(function (user) {
  11. if (user.id === id) {
  12. app.users.remove(user)
  13. return true
  14. }
  15. })
  16. })
  17. var app = new Vue({
  18. el: '#app',
  19. filters: validators,
  20. scope: {
  21. users: [],
  22. newUser: {
  23. name: '',
  24. email: ''
  25. },
  26. validation: {
  27. name: false,
  28. email: false
  29. },
  30. isValid: {
  31. $get: function () {
  32. var valid = true
  33. for (var key in this.validation) {
  34. if (!this.validation[key]) {
  35. valid = false
  36. }
  37. }
  38. return valid
  39. }
  40. },
  41. addUser: function (e) {
  42. e.preventDefault()
  43. if (this.isValid) {
  44. Users.push(this.newUser)
  45. this.newUser = {}
  46. }
  47. },
  48. removeUser: function (e) {
  49. new Firebase(baseURL + 'users/' + e.item.id).remove()
  50. }
  51. }
  52. })