2014-11-24 73 views
1

我正在使用angular x-editable來編輯html表內聯。問題是我需要給用戶選項來保存表中的所有數據,而不必將其放入編輯模式。如果我這樣做了,那麼我的範圍值就會被忽略掉。Angularjs xeditable - 保存但不編輯

但是,如果我第一次把窗體放在編輯模式,然後點擊保存,一切工作正常。

這裏是的jsfiddle顯示問題:http://jsfiddle.net/0yvhd84o/

HTML:

<div ng-app="app" ng-controller="Ctrl" style="margin: 50px"> 
<form editable-form name="tableform" onaftersave="saveTable()"> 

    <table class='table table-bordered'> 
     <tr style="font-weight: bold"> 
      <td>Name</td> 
     </tr> 
     <tr> 
      <td> 

        <span editable-text="user.name" e-form="tableform" onaftersave="saveTable()"> 
      {{ user.name || 'empty' }} 
      </span> 
      </td> 
     </tr> 
    </table> 
     <div class="btn-edit"> 
     <button type="button" class="btn btn-default" ng-show="!tableform.$visible" ng-click="tableform.$show()"> 
     edit 
     </button> 
        <button type="submit" ng-disabled="tableform.$waiting" class="btn btn-primary">save</button> 
    </div> 
    <div class="btn-form" ng-show="tableform.$visible"> 


     <button type="button" ng-disabled="tableform.$waiting" ng-click="tableform.$cancel()" class="btn btn-default">cancel</button> 
    </div> 
</form> 
    <br><br> 
    <div class="row"> 
     Result is: {{result}} 
    </div> 
</div> 

AngularJS

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

app.run(function(editableOptions) { 
    editableOptions.theme = 'bs3'; 
}); 

app.controller('Ctrl', function($scope, $filter) { 
    $scope.user = { 
    name: 'awesome user', 
    status: 2 
    }; 


    $scope.saveTable = function(){ 

     $scope.result = $scope.user.name ; 
    } 

    $scope.result = ''; 

}); 

有沒有辦法實現這一點,所以,用戶應該如果不需要進行任何更改,則不必進入編輯模式

回答

0

我能弄明白這一點。這裏是萬一別人解決方案需要它:

您需要添加NG點擊=「 tableform $顯示()」,保存按鈕以及

<button type="submit" ng-disabled="tableform.$waiting" class="btn btn-primary" ng-click="tableform.$show()">save</button> 

工作實例:http://jsfiddle.net/9eg11s0o/