2016-06-15 3 views
2

Я создал один список TODO в AngularJS, но я не закончил функцию обновления. У меня есть некоторые трудности.Как обновить список в AngularJS?

Как создать функцию обновления?

Ссылка: https://plnkr.co/edit/XfWoGVrEBqSl6as0JatS?p=preview

<ul class="list-todo"> 
     <li ng-repeat="t in tasks track by $index"> 
      <div class="row"> 
       <div class="six columns"> 
        <p>{{ t }}</p> 
       </div> 
       <div class="three columns"> 
        <button class="button" ng-click="update()">update</button> 
       </div> 
       <div class="three columns"> 
        <button class="button" ng-click="delete()">x</button> 
       </div> 
      </div> 
     </li> 
    </ul> 

Угловой Код:

angular.module('todoTest', []) 
.controller('todoController', function($scope) { 
    $scope.tasks = []; 
    $scope.add = function() { 
     $scope.tasks.push($scope.dotask); 
    } 
    $scope.update = function(){ 
     $apply.tasks.push($scope.dotask); 
    } 
    $scope.delete = function() { 
     $scope.tasks.splice(this.$index, 1); 
    } 
}) 

ответ

0

Кнопка для обновления. Видно только при обновлении.

<div class="row"> 
     <button type="submit" class="u-full-width button button-primary">Criar Tarefa</button> 
     <button ng-show="updateMode" ng-click="update()" type="button" class="u-full-width button button-primary">Update</button> 
</div> 

Новое обновление функция.

$scope.update = function(index) { 
    if ($scope.updateMode) { 
    $scope.tasks[$scope.updateIndex] = $scope.dotask; 
    $scope.updateMode = false; 
    } else { 
    $scope.dotask = $scope.tasks[index]; 
    $scope.updateMode = true; 
    $scope.updateIndex = index; 
} 

Если нажать на обновление задачи он будет делать большую кнопку обновления видимой и принести старый TODO к входу. После нажатия кнопки большого обновления задача todo будет обновляться.

Plunker

+0

Greats! Это функция, которую я пытался создать. –

2

Если вы хотите обновить значение, которое вы должны передать в качестве параметра положения задачи внутри массива задач ($ индекс положение):

<button class="button" ng-click="update($index)">update</button> 

И тогда функция обновления будет:

$scope.update = function(index){ 
    $scope.tasks[index] = $scope.dotask; 
} 

Это то, что вам нужно?

+0

Я тестировал здесь и не обновлял. Задача должна появиться на вкладке для изменения текста. –

+0

Это решение работает нормально. Какое поведение вам нужно в точности? Вы хотите, чтобы кнопка обновления отображала задачу, которая нуждается в обновлении, наследует ввод и затем нажимает кнопку «Сохранить»? – gyc

+0

@DouglasGorniMello Я тестировал его в вашем punker, и он работал, если вы хотите обновить имя задачи, используя тот же ввод, который используется для добавления новой задачи. – miquelarranz

Смежные вопросы