Преглед изворни кода

update firebase example to use VueFire

Evan You пре 10 година
родитељ
комит
4d82f6a5d3
2 измењених фајлова са 15 додато и 34 уклоњено
  1. 10 33
      examples/firebase/app.js
  2. 5 1
      examples/firebase/index.html

+ 10 - 33
examples/firebase/app.js

@@ -1,46 +1,24 @@
-var baseURL = 'https://vue-demo.firebaseIO.com/'
 var emailRE = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
 
-/**
- * Setup firebase sync
- */
-
-var Users = new Firebase(baseURL + 'users')
-
-Users.on('child_added', function (snapshot) {
-  var item = snapshot.val()
-  item.id = snapshot.key()
-  app.users.push(item)
-})
-
-Users.on('child_removed', function (snapshot) {
-  var id = snapshot.key()
-  app.users.some(function (user) {
-    if (user.id === id) {
-      app.users.$remove(user)
-      return true
-    }
-  })
-})
-
-/**
- * Create Vue app
- */
+// Firebase ref
+var usersRef = new Firebase('https://vue-demo.firebaseIO.com/users')
 
+// create Vue app
 var app = new Vue({
-
   // element to mount to
   el: '#app',
-
   // initial data
   data: {
-    users: [],
     newUser: {
       name: '',
       email: ''
     }
   },
-
+  // firebase binding
+  // https://github.com/vuejs/vuefire
+  firebase: {
+    users: usersRef
+  },
   // computed property for form validation state
   computed: {
     validation: function () {
@@ -56,18 +34,17 @@ var app = new Vue({
       })
     }
   },
-
   // methods
   methods: {
     addUser: function () {
       if (this.isValid) {
-        Users.push(this.newUser)
+        usersRef.push(this.newUser)
         this.newUser.name = ''
         this.newUser.email = ''
       }
     },
     removeUser: function (user) {
-      new Firebase(baseURL + 'users/' + user.id).remove()
+      usersRef.child(user['.key']).remove()
     }
   }
 })

+ 5 - 1
examples/firebase/index.html

@@ -4,8 +4,12 @@
     <title>Vue.js Firebase example</title>
     <meta charset="utf-8">
     <link rel="stylesheet" type="text/css" href="style.css">
-    <script src='https://cdn.firebase.com/js/client/2.2.9/firebase.js'></script>
+    <!-- Vue -->
     <script src="../../dist/vue.js"></script>
+    <!-- Firebase -->
+    <script src="https://cdn.firebase.com/js/client/2.4.2/firebase.js"></script>
+    <!-- VueFire -->
+    <script src="https://cdn.jsdelivr.net/vuefire/1.0.1/vuefire.min.js"></script>
   </head>
   <body>
     <div id="app">