【问题标题】:Add new Row in editable state以可编辑状态添加新行
【发布时间】:2017-02-16 17:36:40
【问题描述】:

我有一个简单的中继器,其中每一行都可以在线编辑。作为该转发器的一部分,当我添加新行时,我希望它处于可编辑状态,而不是静态的。当我尝试将 $scope.editable = true 添加到添加按钮时,它使整个中继器可编辑。

这是一个说明我的代码的 plunker: http://plnkr.co/edit/tVOLYm2mg5be2L6NpM6k?p=preview

$scope.addRow = function() {
    $scope.accounts.unshift({ name: 'Enter Name', id: 'Enter ID', code: 'Enter Code'});
    //$scope.editable = true;
}

任何人都可以协助我完成工作吗?

谢谢

【问题讨论】:

    标签: angularjs angularjs-ng-repeat inline-editing


    【解决方案1】:
    $scope.editable = false;
    

    此语句在父范围内设置可编辑值,而 ng-repeat 为每次重复创建子范围。 你需要理解这个概念。 Look at this question 明白这一点。

    现在,实现您想要做的更好的方法是向您的帐户数组中的每个帐户对象添加一个新属性,使行可编辑或不可编辑。

    因此,每当取消转移帐户时,请执行以下操作:

     $scope.accounts.unshift({
          name: 'Enter Name',
          id: 'Enter ID',
          code: 'Enter Code',
          editable: true
      });
    

    在 html 中,不要使用editable,而是使用account.editable

    您不需要将editable 属性添加到现有数据中,因为不存在的属性是隐式虚假的,因此您的网格最初将自动处于不可编辑模式。

    【讨论】:

    • 我明白你的意思。我曾尝试将相同的代码添加到我的数据和 unshift 脚本中,但我在 html 端没有正确,所以也没有工作。非常感谢@Pranav Jindal!
    • 另外,请阅读我已超链接的问题和解释。它真的会让你明白发生了什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多