2017-06-29 4 views
0

これを達成するためのいくつかの異なる方法を試した後、私はおそらく最も簡単にチェックされた項目を1つの配列に送り、チェックされていないと考えられますアイテムを別の配列にコピーすると、チェックされたアイテムの配列をクリアするボタンを作ることができます...しかし、私は何もしていません...考えていますか?チェックされていない項目とは異なる配列にチェック項目を追加する方法は? anglejs

HTML:

<input type="text" placeholder="To do..." ng-model="vm.myTask"> 
<button type="button" ng-click="vm.submitTask()">Submit</button> 
<br> 

<div ng-repeat="task in vm.myTasks" ng-class="'checkedbackground': task.checked"> 
    <ul> 
     <li> 
      <input type="checkbox" value="{{task.name}}" ng-model="task.checked">{{task.name}} 
      <button type="button" ng-click="vm.myTasks.splice($index, 1)">Delete</button> 
     </li> 
    </ul> 
</div> 

<button type="button" ng-click="vm.clearAll()"> Clear Complete</button> 

homeController.js

var myTasks = []; 
var completeTasks []; 

class HomeController { 



//submit task from input value 
submitTask(){ 
//push new task into array 
    myTasks.push({name: this.myTask, checked: false}); 

} 
constructor(myTask, checkedTask){ 
this.myTasks = myTasks; 

} 

clearAll(){ 



} 

} 



angular.module("myapp").controller("HomeController", HomeController); 

は、私が試したものを消去しますが、私は関与しようとしたものの、いくつかの本:しかし全体のことを破った

constructor(myTask, checkedTask){ 
    this.myTasks = myTasks; 
    completeTasks.push({name: this.checkedTask, checked: true}); 
    } 

+0

質問をもう一度読むことができますか?それを理解できないからです。 : –

答えて

1

オリジナルのアイデアと、この質問にjavacriptというタグを付けたという事実を考慮して、元の配列を通過する(別のものを作成する必要はありません)、deleter関数を作成してからタスクが完了している場合のチェックは(各リスト項目は「isDone」という名前のプロパティを持つオブジェクトにすることができます)、および行われた場合、あなたはsplice()

これを行うための別の方法は

で使用して配列からその項目を削除することができます
function clr() { 
    var newlist = TaskList.filter(function (item,i,TaskArr) { 
     if(item.check) 
      return false; 
     else return true; 
    }); 
    TaskList = newlist; 

} 

これは、filter()関数は、項目がチェックされている(完了している)かどうかをチェックし、未完了項目のみを含む新しい配列を返します。

+0

私は混乱しています、あなたはif文について話しています、そしてif文が消えて新しい配列部分を作る... –

+0

私のコードはPankaj Parkarによって小さくなるように編集されました。 –

+0

@AbhishekRanjan元のコードが必要な場合は、古いリビジョンに戻すことができます。[このリンク](https://stackoverflow.com/revisions/44820957/1)をクリックするだけで、コードを見つけることができます。 )、私はちょうどコードを最適化することについての考えを持っていた –

関連する問題