| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- 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()
- }
- }
- })
|