vue2/examples/firebase/app.js

57 lines
1.3 KiB
JavaScript

var baseURL = 'https://vue-demo.firebaseIO.com/',
Users = new Firebase(baseURL + 'users')
Users.on('child_added', function (snapshot) {
var item = snapshot.val()
item.id = snapshot.name()
app.users.push(item)
})
Users.on('child_removed', function (snapshot) {
var id = snapshot.name()
app.users.some(function (user) {
if (user.id === id) {
app.users.remove(user)
return true
}
})
})
var app = new Vue({
el: '#app',
filters: validators,
data: {
users: [],
newUser: {
name: '',
email: ''
},
validation: {
name: false,
email: false
},
isValid: {
$get: function () {
var valid = true
for (var key in this.validation) {
if (!this.validation[key]) {
valid = false
}
}
return valid
}
}
},
methods: {
addUser: function (e) {
e.preventDefault()
if (this.isValid) {
Users.push(this.newUser)
this.newUser = {}
}
},
removeUser: function (e) {
new Firebase(baseURL + 'users/' + e.targetVM.id).remove()
}
}
})