【问题标题】:Angular JS add new row be in editable mode as defaultAngular JS 添加新行默认为可编辑模式
【发布时间】:2016-10-25 09:59:53
【问题描述】:

我正在使用 ng-repeat 指令创建一个网格,但是通过单击新行,新行默认情况下不处于可编辑模式,用户必须单击编辑按钮。如何在可编辑模式下创建新行?

    <!-- <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>

【问题讨论】:

  • 我可以再举一个与此相关的例子吗?这对我们俩都会更好。
  • 选择code部分并按command+K格式化code
  • 是的,我需要添加新行的按钮,单击新行后默认显示为编辑模式
  • 请添加正确的htmlJS,您的代码示例中没有ng-repeat。另外,您实际上是在使用editablegrid 库还是标签不正确?
  • 我把所有的html部分都放了

标签: javascript angularjs angularjs-directive angularjs-ng-repeat editablegrid


【解决方案1】:

我相信您使用的是可编辑表单。只需尝试在表单元素上添加 shown="true"。

示例(尝试用此替换您的表单行):

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

你也可以通过 ng-init 来实现:

<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
 });
}

【讨论】:

  • 我只需要通过点击“添加技能”按钮创建一个新行来编辑模式
  • 那么你需要一些东西(例如一个属性),它会检查是否应该显示表单。例如,您的技能对象具有“可编辑”属性,看起来像 {name: "skill1", editable: false}。然后在表单元素中,您需要将显示的属性更改为如下所示的内容=“skill.editable === true”。并且您的 addSkill 函数应该添加可编辑属性设置为 true 的技能。像这样 {name: "skill1", editable: true}
  • 我已经为你更新了一个答案,让你更清楚
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-15
  • 2015-08-13
  • 1970-01-01
  • 2015-03-07
  • 1970-01-01
  • 2012-02-17
  • 1970-01-01
相关资源
最近更新 更多