Skip to content

Instantly share code, notes, and snippets.

@telagraphic
Last active January 2, 2016 16:09
Show Gist options
  • Save telagraphic/8328070 to your computer and use it in GitHub Desktop.
Save telagraphic/8328070 to your computer and use it in GitHub Desktop.
Updating a firebase record. Console errors with TypeError: Object #<Object> has no method '$save'
angular.module('myApp.controllers', ['firebase'])
.controller('BettingController', ["$scope", "$firebase", function($scope, $firebase) {
var fireBase = new Firebase("https://flowbetter.firebaseio.com");
$scope.bets = $firebase(fireBase);
$scope.newBet = {
better: "",
startTime: "",
lengthTime: "",
winner: false
};
$scope.saveBet = function() {
$scope.newBet.created_at = moment().format("YYYY-MM-DD");
$scope.newBet.winner = false;
$scope.bets.$add($scope.newBet);
$scope.newBet = "";
};
$scope.updateWinner = function(bet) {
bet.$save({winner:true});
//maybe something like this...???
var myBet = $scope.bets[id];
myBet.$save({winner: true});
};
}]).controller('ResultsController', ['$scope', function($scope) {
$scope.firstName = "Nick Name";
}]);
<!doctype html>
<html lang="en" ng-app="myApp" ng-csp>
<head>
<meta charset="utf-8">
<title>Flow Better</title>
<link rel="stylesheet" href="css/normalize.css"/>
<link rel="stylesheet" href="css/app.css"/>
<link rel="stylesheet" href="css/csp.css">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.min.js"></script>
<script src="lib/angular-route.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.5.0/moment.min.js"></script>
<script src='https://cdn.firebase.com/v0/firebase.js'></script>
<script src='https://cdn.firebase.com/libs/angularfire/0.5.0/angularfire.min.js'></script>
<meta name="viewport" content="width=device-width">
</head>
<body>
<div ng-controller="BettingController">
{{ today }}
<form name="newBetForm" ng-submit="saveBet()">
<label>Name</label>
<input type="text"
style="text-transform: capitalize"
ng-model="newBet.better"
placeholder="Suzy McCue"
ng-pattern="/^[a-zA-Z ]*$/"
ng-minlength=3
ng-maxlength=20
required>
<label>Flow Start Time</label>
<input type="time"
ng-model="newBet.startTime"
placeholder="12:34pm">
<label>Flow Length Time (in minutes)</label>
<input type="number"
ng-model="newBet.timeLength"
placeholder="20" required>
<input type="submit" placeholder="Place Bet" ng-disabled="newBetForm.$invalid">
<form>
<h2>Todays Bets</h2>
<ul>
<li ng-repeat="bet in bets | orderByPriority | getCurrentBets">
<h2>{{bet.better}}</h2>
<span>{{bet.startTime}}</span>
<b>{{bet.timeLength}}</b>
<input type="checkbox" ng-model="bet.winner" ng-change="updateWinner(bet)">
</li>
</ul>
<h2>Yesterdays Bets</h2>
<ul>
<li ng-repeat="bet in bets | orderByPriority | getPreviousBets">
<h2>{{bet.better}}</h2>
<span>{{bet.startTime}}</span>
<b>{{bet.timeLength}}</b>
</li>
</ul>
</div>
<div ng-controller="ResultsController">
</div>
<!-- Library files -->
<!-- App files -->
<script src="js/app.js"></script>
<script src="js/controllers.js"></script>
<script src="js/directives.js"></script>
<script src="js/filters.js"></script>
<script src="js/services.js"></script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment