4
4
< meta charset ="UTF-8 ">
5
5
< title > </ title >
6
6
< link href ="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css " rel ="stylesheet ">
7
+ < link href ="./example.css " rel ="stylesheet ">
7
8
< script src ="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular.min.js "> </ script >
8
9
< script src ="https://cdn.firebase.com/js/client/1.0.21/firebase.js "> </ script >
9
10
< script src ="https://github.com/js-data/js-data/releases/download/0.4.1/js-data-0.4.1.min.js "> </ script >
12
13
< script src ="./example.js "> </ script >
13
14
</ head >
14
15
< body data-ng-controller ="firebaseCtrl as fCtrl ">
16
+ < div class ="example-masthead ">
17
+ < div class ="container ">
18
+ < nav class ="example-nav ">
19
+ < a class ="example-nav-item " href ="http://www.js-data.io "> js-data.io</ a >
20
+ < a class ="example-nav-item " href ="https://github.com/js-data/js-data/wiki/DSFirebaseAdapter "> API Documentation</ a >
21
+ < a class ="example-nav-item " href ="https://github.com/js-data/js-data-firebase "> GitHub</ a >
22
+ < a class ="example-nav-item " href ="https://groups.io/org/groupsio/jsdata "> Mailing List</ a >
23
+ < a class ="example-nav-item " href ="https://github.com/js-data/js-data-firebase/issues "> Issues</ a >
24
+ < a class ="example-nav-item active " href ="# "> Firebase Adapter Demo</ a >
25
+ </ nav >
26
+ </ div >
27
+ </ div >
15
28
< div class ="container " style ="margin-top: 100px ">
16
29
< div class ="col-sm-6 ">
17
30
< h1 class ="page-header "> js-data firebase example</ h1 >
@@ -23,8 +36,7 @@ <h3 class="panel-title">Users</h3>
23
36
< div class ="list-group ">
24
37
< div class ="list-group-item " data-ng-repeat ="user in users track by user.id ">
25
38
< div class ="pull-right ">
26
- < button class ="btn btn-xs btn-danger " data-ng-click ="remove(user) "
27
- data-ng-disabled ="destroying === user.id ">
39
+ < button class ="btn btn-xs btn-danger " data-ng-click ="remove(user) ">
28
40
Delete
29
41
</ button >
30
42
</ div >
@@ -34,7 +46,7 @@ <h3 class="panel-title">Users</h3>
34
46
< form id ="user-form " name ="user-form " data-ng-submit ="add({ name: fCtrl.name }) ">
35
47
36
48
< input class ="form-control " type ="text " data-ng-model ="fCtrl.name " id ="name " name ="name "
37
- placeholder ="Enter a name and press enter " data-ng-disabled =" creating " />
49
+ placeholder ="Enter a name and press enter " />
38
50
< input type ="submit " class ="hidden "/>
39
51
</ form >
40
52
</ div >
@@ -46,45 +58,59 @@ <h3 class="panel-title">Users</h3>
46
58
angular.module('firebase-example', [])
47
59
.factory('store', function () {
48
60
var store = new JSData.DS();
49
- store.registerAdapter('http', new DSHttpAdapter({
61
+
62
+ store.registerAdapter('firebase', new DSFirebaseAdapter({
50
63
basePath: 'https://js-data-firebase.firebaseio.com'
51
64
}, { default: true });
65
+
52
66
return store;
53
67
})
54
68
.factory('User', function (store) {
55
69
return store.defineResource('user');
56
70
})
57
71
.controller('firebaseCtrl', function ($scope, $timeout, User) {
58
72
var fCtrl = this;
59
- User.findAll().then(function () {
73
+
74
+ User.findAll().then(function (users) {
75
+ $scope.users = users;
60
76
$scope.$apply();
61
77
});
62
78
63
79
$scope.add = function (user) {
64
- $scope.creating = true;
65
80
User.create(user).then(function () {
66
- $scope.creating = false;
67
81
fCtrl.name = '';
68
- $timeout();
69
- }, function () {
70
- $scope.creating = false;
82
+ $scope.$apply();
71
83
});
72
84
};
85
+
73
86
$scope.remove = function (user) {
74
- $scope.destroying = user.id;
75
87
User.destroy(user.id).then(function () {
76
- delete $scope.destroying;
77
- $timeout();
78
- }, function () {
79
- delete $scope.destroying;
88
+ $scope.$apply();
80
89
});
81
90
};
82
- $scope.$watch(function () {
83
- return User.lastModified();
84
- }, function () {
85
- $scope.users = User.filter();
86
- });
87
91
});
92
+ </ code > </ pre >
93
+ </ div >
94
+ < div >
95
+ < pre > < code data-ng-non-bindable >
96
+ <div class="list-group">
97
+ <div class="list-group-item" data-ng-repeat="user in users track by user.id">
98
+ <div class="pull-right">
99
+ <button class="btn btn-xs btn-danger" data-ng-click="remove(user)">
100
+ Delete
101
+ </button>
102
+ </div>
103
+ {{ user.id }}: {{ user.name }}
104
+ </div>
105
+ <div class="list-group-item">
106
+ <form id="user-form" name="user-form" data-ng-submit="add({ name: fCtrl.name })">
107
+
108
+ <input class="form-control" type="text" data-ng-model="fCtrl.name" id="name" name="name"
109
+ placeholder="Enter a name and press enter"/>
110
+ <input type="submit" class="hidden"/>
111
+ </form>
112
+ </div>
113
+ </div>
88
114
</ code > </ pre >
89
115
</ div >
90
116
</ div >
0 commit comments