2016-03-24 12 views
1

すべてを削除してindexOfが機能しないのはなぜですか?並べ替え、スプライス、スライスとリバースがうまく動作します。Knockout.js "removeAll" funtionが機能しない

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
<script type='text/javascript' src='knockout-3.4.0.js'> </script> 
</head> 
<body> 
    <table height="100" border="1" width="800"> 
    <tr> 
     <td> 
     <span data-bind="text : array1()"></span> 
    </td> 
    </tr> 
</table> 
<div> 
    <table height="100" border="1" width="1000"> 
    <tr> 
     <td><button data-bind="click : sort1" >Sort</button></td> 
     <td><button data-bind="click : shift1" >Shift</button></td> 
     <td><button data-bind="click : reverse1" >Reverse</button></td> 
     <td><button data-bind="click : splice1" >Splice</button></td> 
     <td><button data-bind="click : indexof1" >IndexOf</button></td> 
     <td><button data-bind="click : slice1" >Slice</button><br></td> 
     <td><button data-bind="click : remove1" >remove</button></td> 
    <td><button data-bind="click : removeAll1" >removeAll</button></td> 
    <td><button data-bind="click : removeFunction" >remFunction</button>/td> 
    </tr> 
</table> 
<table height="100" border="1" width="1000"> 
    <tr> 
    <td>Enter Text <input data-bind="value: textval"></td></input> 
    </tr> 
</table> 
</div> 

<span data-bind="text: textval"></span> 
<script type="text/javascript"> 
var myModel={ 
    array1 : ko.observableArray(["animal","boy","cat","dog","elf","fox"]), 
    textval : ko.observable(""), 
    sort1 : function(){ 
     myModel.array1.sort(); 
    }, 

    shift1 : function(){ 
     alert(myModel.val()); 
     myModel.array1.unshift(myModel.textval()); 

    }, 

シフトが正しく機能していませんか?

 reverse1 : function(){ 
     myModel.array1.reverse(); 
    }, 

    splice1 : function(){ 
     alert(myModel.array1.splice(1,3)); 
    }, 
    indexof1: function(){ 
     alert(myModel.textval()); 
     alert(myModel.array1.indexOf(myModel.textval())); 
    }, 

    slice1 : function(){ 
     alert(myModel.array1.slice(1,4)); 
    }, 

    removeAll1 : function(){ 
     alert("removall"); 
     myModel.array1.removeAll(); 
    } 

removeAllも正常に動作していません。多くの時間がかかりましたが、jspでは動作しません。あなたがこののJSFiddleを作成することができる場合も

// this is falling over -- alert(myModel.val()); <- should be myModel.textval() 
// therefore not getting to this. 
myModel.array1.unshift(myModel.textval()); 

:REMOVEALLはちょうど配列シフトするための

myModel.array1([]); 

を空にするために

} 
    ko.applyBindings(myModel); 
    </script> 
    </body> 
</html> 
+0

あなたの 'shift1'メソッドは' unshift'を内部的に使っています...もっと重要なことは:あなたが "正しく動作していない"ということを説明できますか?あなたのコンソールに記録されているエラー? – user3297291

+0

私はjspページのeclipse indigoでそれを使用しています。コードは単に空白の値を挿入し、removeAllは何もしません。私は何時間も何度も試してみましたが、ネットで検索したところ、コードはシンプルでうまくいくようですが、まだ動作していません。 – Shaurya

答えて

0

。あなたのマークアップとあなたのviewmodelでの問題、このフィドルのブラウザコンソールを開き、さまざまなアクションのためのエラーを見てあり

0

https://jsfiddle.net/z15d5awa/

 shift1 : function(){ 
     alert(myModel.val()); 
     myModel.array1.unshift(myModel.textval()); 
    }, 

myModel.val()が、これは何ですか?

+0

実際にさまざまな方法で試してみてくれてありがとう、私は間違いだったcode.yesのこのセクションを更新するのを忘れてしまった!!それを「alert(myModel.textval());」に変更した後それは正常に動作しています。お手数ですが tyler_mitchell、brettkcありがとうございます。 – Shaurya

+0

removeAllはどうですか、エラーもありますか? – Shaurya

関連する問題