我是Firebase的新用户......我试图在Angularjs&#尝试"连接后端" 示例39;主页在本地运行。
我已经解决了常见的ngRoute
问题和该应用实际上正常工作,除了编辑对话框,它没有从Firebase加载数据< / em>的
list.html
部分加载正常并呈现数据,detail.html
在CreateCtrl
控制器加载时也会正常加载,这会将数据保存到Firebase
as预期
问题在于EditCtrl
控制器,它会在字段中呈现detail.html
部分而不记录的数据。
让我疯狂的是,Angular的页面上的示例似乎使用完全相同的代码,并且一切都在他们的最后工作。我试过隔离问题,但没有用。
我已将示例转换为应用并创建了a repository at Github。回购邮件充斥着不相关的开发内容,但该应用程序应该直接在ZIP文件中运行。
非常感谢任何线索,欢呼!
app.js
var myAppModule = angular.module('project', ['ngRoute', 'firebase'])
.value('fbURL', 'https://color-consolidator.firebaseio.com')
.factory('Projects', function($firebase, fbURL) {
return $firebase(new Firebase(fbURL));
});
myAppModule.config(function($routeProvider) {
$routeProvider
.when('/', {
controller:'ListCtrl',
templateUrl:'list.html'
})
.when('/edit/:projectId', {
controller:'EditCtrl',
templateUrl:'detail.html'
})
.when('/new', {
controller:'CreateCtrl',
templateUrl:'detail.html'
})
.otherwise({
redirectTo:'/'
});
});
myAppModule.controller('ListCtrl', function($scope, Projects) {
firebaseConn();
$scope.projects = Projects;
});
myAppModule.controller('CreateCtrl', function($scope, $location, $timeout, Projects) {
firebaseConn();
$scope.save = function() {
Projects.$add($scope.project, function() {
$timeout(function() { $location.path('/'); });
});
};
});
myAppModule.controller('EditCtrl', function($scope, $location, $routeParams, $firebase, fbURL) {
firebaseConn();
var projectUrl = fbURL + $routeParams.projectId;
$scope.project = $firebase(new Firebase(projectUrl));
$scope.destroy = function() {
$scope.project.$remove();
$location.path('/');
};
$scope.save = function() {
$scope.project.$save();
$location.path('/');
};
});
detail.html
<form class="form-group" name="myForm">
<div class="form-group" ng-class="{error: myForm.name.$invalid}">
<label class="control-label" for="name">Name</label>
<input type="text" class="form-control" name="name" ng-model="project.name" required>
<span class="help-block" ng-show="myForm.name.$error.required">Required</span>
</div>
<div class="form-group" ng-class="{error: myForm.site.$invalid}">
<label class="control-label" for="site">Site URL</label>
<input type="url" class="form-control" name="site" ng-model="project.site" required>
<span class="help-block" ng-show="myForm.site.$error.required">Required</span>
<span class="help-block" ng-show="myForm.site.$error.url">Not a URL</span>
</div>
<div class="form-group">
<label for="description">Description</label>
<textarea class="form-control" name="description" ng-model="project.description"></textarea>
</div>
<a href="#/" class="btn btn-default">Cancel</a>
<button type="button" class="btn btn-primary" ng-click="save()" ng-disabled="myForm.$invalid">Save</button>
<button type="button" class="btn btn-danger" ng-click="destroy()" ng-show="project.$remove">Delete</button>
</form>
答案 0 :(得分:1)
更改您的网址:
来自:
https://color-consolidator.firebaseio.com
到此:
https://color-consolidator.firebaseio.com/
我已经在你的回购中创建了拉动请求并实施了修复。