Javascript 仅将一个范围更改为输入ng repeat

Javascript 仅将一个范围更改为输入ng repeat,javascript,angularjs,Javascript,Angularjs,我有一个简单的应用程序,显示任务。我想双击一个任务来编辑它,所以我希望它从更改为。这是我的密码: <li ng-repeat="task in tasks"> <input type="checkbox" ng-checked="task.done" ng-click="taskDone(task.id, !task.done)"/> <span ng-dblclick="editTask()" ng-if="!editable">{{::ta

我有一个简单的应用程序,显示任务。我想双击一个任务来编辑它,所以我希望它从
更改为
。这是我的密码:

<li ng-repeat="task in tasks">
    <input type="checkbox" ng-checked="task.done" ng-click="taskDone(task.id, !task.done)"/>
    <span ng-dblclick="editTask()" ng-if="!editable">{{::task.task}}</span>
    <input type="text" ng-if="editable" value="{{task.task}}" />
</li>

如何将一个
更改为

尝试将
可编辑
标记放在任务上,而不是范围上

<li ng-repeat="task in tasks">
    <input type="checkbox" ng-checked="task.done" ng-click="taskDone(task.id, !task.done)"/>
    <span ng-dblclick="editTask(task)" ng-if="!task.editable">{{::task.task}}</span>
    <input type="text" ng-if="task.editable" value="{{task.task}}" />
</li>

...
$scope.editTask = function(task) {
     task.editable = true;
 };
...
  • {{::task.task}
  • ... $scope.editTask=函数(任务){ task.editable=true; }; ...
    尝试将
    可编辑
    标志放在任务上,而不是范围上

    <li ng-repeat="task in tasks">
        <input type="checkbox" ng-checked="task.done" ng-click="taskDone(task.id, !task.done)"/>
        <span ng-dblclick="editTask(task)" ng-if="!task.editable">{{::task.task}}</span>
        <input type="text" ng-if="task.editable" value="{{task.task}}" />
    </li>
    
    ...
    $scope.editTask = function(task) {
         task.editable = true;
     };
    ...
    
  • {{::task.task}
  • ... $scope.editTask=函数(任务){ task.editable=true; }; ...
    请显示你的js如果你能提供一些代码,那会更容易。将所有的
    可编辑的
    属性绑定到
    $index
    或任务id上。@thepio你所说的
    绑定
    是什么意思?@AdrianWydmanski一种方法是按照Thor Jacobsen的答案来做。请显示你的js如果你能提供一些代码..将所有
    可编辑的
    属性绑定到
    $index
    或任务id。@thepio你所说的
    绑定
    是什么意思?@AdrianWydmanski一种方法是按照托尔·雅各布森在回答中所说的做。