使用Angularfire和Angular-xeditable更新数据字符串

问题描述:

我正在开发我的第一个小型AngularFire/AngularJs应用程序。我想使用Angular-xeditable插件。 到目前为止,我可以创建并保存新的数据,但我无法找到如何使用Angular-xeditable更新现有数据。使用Angularfire和Angular-xeditable更新数据字符串

我得到了没有错误信息,什么是错的:

HTML

<table class="table table-hover" ng-controller="premiercontrolleur"> 
<tr><th>Prénom</th><th>Nom</th></tr> 
    <tr ng-repeat="client in clients"> 
    <td editable-text="client.prenom" onbeforesave="saveClient($data)">{{client.prenom}}</td> 
    <td editable-text="client.nom" onbeforesave="saveClient($data)">{{client.nom}}</td> 
</tr> 
</table> 

的Javascript

var app = angular.module("crmfirebase", ["firebase", "xeditable"]); 

app.run(function(editableOptions) { 
    editableOptions.theme = 'bs3'; // bootstrap3 theme. Can be also 'bs2', 'default' 
}); 

app.controller("premiercontrolleur", function($scope, $firebase) { 
    var ref = new Firebase("https://mydatabaseurl.firebaseio.com/clients"); 
    var sync = $firebase(ref); 

    $scope.clients = sync.$asArray(); 

    $scope.addClient = function(client) { 
    $scope.clients.$add({prenom: client.prenom, nom: client.nom}); 
    } 

    $scope.saveClient = function(data) { 
    $scope.clients.$save({prenom: data}); 
    } 
}); 

我试着去了解如何使它与保存工作方法:https://www.firebase.com/docs/web/libraries/angular/api.html#angularfire-firebasearray-save-recordorindex

+0

你在传递到$ scope.clients。$ save()这里?它不需要随机数据,它可以是记录或记录的索引(它必须已经在数组中)。我不能告诉你通过调用$ save({prenom:data})会发生什么。 – Kato 2014-10-13 18:25:48

+0

是的,我想执行“save”。我在这里阅读了关于索引(https://www.firebase.com/docs/web/libraries/angular/guide.html),但我不知道如何使用它来保存特定的记录。 – 2014-10-13 21:10:18

我找到了答案!

的Javascript

$scope.saveClient = function (client) { 
    $scope.clients.$save(client); 
}; 

HTML

<table class="table table-hover" ng-controller="premiercontrolleur"> 
<tr><th>Prénom</th><th>Nom</th></tr> 
    <tr ng-repeat="client in clients"> 
    <td editable-text="client.prenom" onbeforesave="saveClient(client)">{{client.prenom}}</td> 
    <td editable-text="client.nom" onbeforesave="saveClient(client)">{{client.nom}}</td> 
</tr> 
</table> 

我你不使用xeditable,只是通过在客户端的说法是这样的:

ng-submit="updateClient(client)"