2016-09-22 3 views
0

У меня есть редактируемый-select, вложенный внутри другого, когда я отправляю вложенные изменения с редактируемого выбора, он не вызывает функцию onftersave, назначаемую ('vm.addOperation()'), он также показывает форму редактирования редактируемого объекта.x-editable inested editable-select not giving

Я хочу, чтобы он просто отображал вложенную форму редактирования и вызов функции для работы.

Мой HTML-код:

<div editable-select="vm.selectedUser" 
    e-ng-options="user.objectId as user.displayName for user in vm.users" 
    onshow="vm.getUsers()" 
    onaftersave="vm.addUser()"> 
     <div class="container" ng-repeat="u in entity.authorizedUsers"> 
      <div class="row"> 
       <div class="col-xs-2"> 
       {{u.id}} 
       </div> 
       <div class="col-xs-4"> 
       <div editable-select="vm.selectedOperation" 
         e-ng-options="operation.id as operation.name for operation in vm.operations" 
         onshow="vm.getOperations()" 
         onaftersave="vm.addOperation()"> 
         <div class="container" ng-repeat="op in u.authorizedOperations"> 
          <div class="row"> 
          <div class="col-xs-3"> 
           {{op.name}} 
          </div> 
          <div class="col-xs-push-2"> 
           <button class="btn btn-xs btn-danger" 
             ng-click="vm.removeOperation(entity.id, u.id, op.id)"> 
            <i class="fa fa-trash-o"></i> 
           </button> 
          </div> 
         </div> 
         </div> 
        </div> 
       </div> 
       <div class="col-xs-push-4"> 
       <button class="btn btn-xs btn-warning pull-left" 
         ng-click="vm.removeuser(entity.id, u.id)"> 
        <i class="fa fa-trash-o"></i> 
       </button> 
       </div> 
      </div> 
     </div> 
    </div> 

ответ

0

Я смог решить эту проблему с помощью следующего кода. Это уродливое обходное решение, пожалуйста, если у кого-то есть более элегантное решение, я бы очень его оценил.

в HTML:

<div editable-select="vm.selectedOperation" 
     e-form ="nestedForm" 
     onshow="vm.getOperations()" 
     ng-click="nestedForm.$show(); vm.xEditableNestedFormFix(nestedForm); $event.stopPropagation()" 
     e-ng-options="operation.id as operation.name for operation in vm.operations" 
     onaftersave="vm.addOperation()"> 

в ЯШ:

vm.xEditableNestedFormFix = function (form) { 
    var editorElement = form.$editables[0].controlsEl[0].firstChild; 
    editorElement.onclick = function (event) { 
     event.stopPropagation(); 
    } 
    var submitButton = form.$editables[0].buttonsEl[0].firstChild 
    submitButton.onclick = function (event) { 
     form.$submit(); 
     event.stopPropagation(); 
    } 
    var cancelButton = form.$editables[0].buttonsEl[0].lastChild 
    cancelButton.onclick = function (event) { 
     event.stopPropagation(); 
    } 
} 
Смежные вопросы