angularjs:如何启用特定组件进行编辑

时间:2014-08-13 11:55:39

标签: angularjs

在我的AngularJS应用程序中,我在ng-repeat中有一些文本框。你可以看到Plunkr片段herehttp://plnkr.co/edit/TyWBV1Yr5Rb0IEY6wdOR?p=preview  最初加载页面时,禁用所有文本框进行编辑,即它们不可编辑。但是,如果用户点击了第三个文本框,则启用'按钮,然后该文本框应单独变为可编辑。目前,虽然我正在设置属性' disabled = false'对于此代码段中的文本框:

  $scope.enable = function(index) { 
                          alert("TextBox "+index+" enabled");
                      $scope.records.data[index].disabled="false";
                    };

但是,它仍然是不可编辑的。你能帮忙吗?

1 个答案:

答案 0 :(得分:1)

你有几个错误。首先将HTML更改为:

<div ng-repeat="server in records">
    <div ng-repeat="user in server.data">
        <input type="text" ng-model="NameEdit" ng-disabled="user.disabled" placeholder="{{user.name}}" init-from-form>
        <button id="enableButton" ng-click="enable(user)">Enable
        </button>
    </div>
</div>

此处我将ngDisabled更改为ng-disabled="user.disabled"(无需表达式{{}})和ng-click="enable(user)"。然后控制器变为:

$scope.enable = function(user) {
    user.disabled = false; // false must be boolean, not string "false"
};

修正了演示:http://plnkr.co/edit/OwFfxmkzHBnmE8Y5TQUi?p=preview