0

ng-repeatディレクティブを使用してグリッドを作成していますが、新しい行をクリックすると、デフォルトでは新しい行が編集可能モードにならず、編集ボタン。編集可能なモードで新しい行を作成するにはどうすればよいですか?Angular JS新しい行を既定値として編集可能にする

<!-- <tr ng-repeat="primaryskill in primarySkills"> --> 
      <tr ng-repeat="skill in skills"> 
     <td> 
      <!-- <span editable-text="primaryskill.name" e-name="name" e-form="rowform"> --> 
      <span editable-text="skill.primarySkill.name" e-name="name" e-form="rowform"> 
      {{ skill.primarySkill.name || 'empty' }} 
      </span> 
     </td> 
     <td > 
      <tags-input ng-model="skill.primarySkill.skillGroups" display-property="name" replace-spaces-with-dashes="false" on-tag-added="saveSkillGroup($tag,skill.primarySkill,$index)" on-tag-removed="removeSkillGroup(skill.primarySkill)"> 
      <auto-complete source="loadskillGroups($query)" display-property="name" load-on-focus="true" min-length="0" load-on-empty="true"></auto-complete> 
      </tags-input> 
      <!-- <p>Model: {{skill.primarySkill.skillGroups}}</p> --> 
     </td> 
     <td> 
      <tags-input ng-model="skill.secondarySkills" display-property="name" on-tag-added="saveSecondarySkill($tag,$tag.id, skill.primarySkill)" on-tag-removed="removeSecondarySkill($tag,skill.secondary)"> 
      <!-- <auto-complete source="loadsecondarySkills($query,skill.primarySkill.id)" display-property="name" min-length="0" load-on-empty="true"></auto-complete> --> 
      </tags-input> 
      <!-- <p>Model: {{skill.secondarySkills}}</p> --> 
     </td> 

     <td style="white-space: nowrap;text-align: center;" class="col-xs-12 col-xs-offset-3"> 
      <!-- form --> 
      <form editable-form name="rowform" ng-show="rowform.$visible" class="form-buttons form-inline" onaftersave="savePrimarySkill(skill.primarySkill, $index)"> 
      <button type="submit" ng-disabled="rowform.$waiting" class="btn btn-primary" > 
       save 
      </button> 
      <button type="button" ng-disabled="rowform.$waiting" ng-click="rowform.$cancel()" class="btn btn-default"> 
       cancel 
      </button> 
      </form> 
      <div > 
      <div class="buttons" ng-show="!rowform.$visible"> 
       <button class="btn btn-primary" ng-click="rowform.$show()">edit</button> 
       <button class="btn btn-danger" ng-click="removePrimarySkill(skill.primarySkill)">del</button> 
      </div> 
      </div> 
     </td> 
     </tr> 
    </table> 

    <div id="myprimarySkills"> 
    <button class="btn btn-default" ng-click="addSkill(primaryskill)">Add Skill</button> 
    </div> 
</div> 
+0

かもしれない。また

<form editable-form name="rowform" shown="true" ng-show="rowform.$visible" class="form-buttons form-inline" onaftersave="savePrimarySkill(skill, $index)"> 

あなたはNG-INITを経由してそれを行うことができます私はあなたにこれに関連する別の例を挙げることができますか?それは私たちにとってより良いものになるでしょう。 – Jigar7521

+0

'code'部分を選択し、' command + K'を押して 'code'をフォーマットします。 – sabithpocker

+0

はい、私は新しい行を追加するためのボタンが必要です。そして新しい行をクリックした後、デフォルトとして編集モードで表示されます –

答えて

1

あなたはxeditableフォームを使用していると思います。フォーム要素にshown = "true"を追加してみてください。

例(これだけでフォームのラインを交換してみてください):

<form editable-form name="rowform" ng-init="rowform.$show()" ng-show="rowform.$visible" class="form-buttons form-inline" onaftersave="savePrimarySkill(skill, $index)"> 

更新:

<form editable-form name="rowform" shown="skill.editable === true" ng-show="rowform.$visible" class="form-buttons form-inline" onaftersave="savePrimarySkill(skill, $index)"> 

$scope.addSkill = function (someParam) { 
$scope.skills.push({ 
    editable: true 
    //some other staff you're implementing 
}); 
} 
+0

新しい行を作る「スキルを加える」ボタンをクリックするだけで編集可能なモードが必要です –

+0

次に、フォームが表示されるべきかどうかをチェックする何か(たとえばプロパティ)が必要です。たとえば、スキルオブジェクトに「編集可能」プロパティがあり、{name: "skill1"、editable:false}のように見えます。次に、フォームの要素で、表示された属性を次のように変更する必要があります。shown = "skill.editable === true"また、addSkill関数は、editableプロパティがtrueに設定されたスキルを追加する必要があります。このように{name: "skill1"、編集可能:true} –

+0

私はそれをより明確にするための答えを更新しました –

関連する問題