2014-06-05 37 views
12

我想創建一個窗體,其中一個文本字段值取決於另一個文本框。角度可編輯更新本地模型問題

參考angularjs,默認情況下xeditable更新局部模型點擊save.But後,我想立刻更新模型,並在另一個文本框

<span editable-text="user.name" e-ng-model="user.name" e-name="name"></span> 
<span editable-text="user.username" e-ng-model="user.username" e-name="username"></span> 

我附上樣品的工作顯示更新的值代碼jsfiddle

+0

點擊保存按鈕更新 –

回答

1

其更新

檢查這個

Working Demo

HTML

<h4>Angular-xeditable Editable form (Bootstrap 3)</h4> 
<div ng-app="app" ng-controller="Ctrl"> 
<form editable-form name="editableForm" onaftersave="saveUser()"> 
    <div> 
     <!-- editable username (text with validation) --> 
     <span class="title">Name: </span> 
     <span editable-text="user.name" e-ng-model="user.name" e-name="name" e-required>{{ user.name || 'empty' }}</span> 
    </div> 

    <div> 
     <!-- editable username (text with validation) --> 
     <span class="title">User name: </span> 
     <span editable-text="user.username" e-ng-model="user.username" e-name="username" e-required>{{ user.username || 'empty' }}</span> 
    </div> 
    <div> 

     <!-- button to show form --> 
     <button type="button" class="btn btn-default" ng-click="editableForm.$show()" ng-show="!editableForm.$visible"> 
     Edit 
     </button> 


     <!-- buttons to submit/cancel form --> 
     <span ng-show="editableForm.$visible"> 
     <button type="submit" class="btn btn-primary" ng-disabled="editableForm.$waiting"> 
      Save 
     </button> 
     <button type="button" class="btn btn-default" ng-disabled="editableForm.$waiting" ng-click="editableForm.$cancel()"> 
      Cancel 
     </button> 
     </span> 
       <br> {{user}} 
    </div> 
    </form> 
</div> 
+1

後NG-模型值謝謝您的答覆。但我想要的是,當我在文本框1中輸入值時,它應該更新包含模型的文本框2,其值取決於模型1。 – Pravin

+0

這意味着在鍵入自己的時候你想要在文本框中改變數據值2 –

+0

是的。當然。 @NidhishKrishnan – Pravin

3

@Pravin我認爲我找到了解決辦法。當用戶在鍵入輸入中選擇字典條目時,我遇到需要更新可編輯模式的情況。我一直在尋找解決方案,我發現下面的方法:

<span editable-text="p.name" e-name="name" e-form="productForm" e-required 
    e-typeahead="product as product.name for product in getProducts($viewValue) | filter:$viewValue | limitTo: 8" 
    e-typeahead-editable="true" e-ng-maxlength="256" e-typeahead-focus-first="false" 
    e-typeahead-on-select='onSelectProductFromDictionary($item, $model, productForm)'> 
    {{ p.name }} 
</span> 

而且方法,更新xeditable數據:

$scope.onSelectProductFromDictionary = function ($item, $model, form) { 

     angular.forEach(form.$editables, function(editable) { 
      if (editable.name === 'name') { 
       return; 
      } 
      editable.scope.$data = $model.something; // this is a dictionary model 
      editable.save(); // move the value from edit input to view xeditable value 
      editable.hide(); // hide the specific xeditable input if you needs 
     }); 

    }; 

我希望它能幫助。

UPDATE [的jsfiddle]

https://jsfiddle.net/fLc2sdd2/

+0

您能否將您的解決方案包含在小提琴中? @przemek – Pravin

+0

我已經添加了示例小提琴。您可以嘗試選擇狀態,然後更改用戶名。你可以嘗試更多... –