すべてを削除して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>
あなたの 'shift1'メソッドは' unshift'を内部的に使っています...もっと重要なことは:あなたが "正しく動作していない"ということを説明できますか?あなたのコンソールに記録されているエラー? – user3297291
私はjspページのeclipse indigoでそれを使用しています。コードは単に空白の値を挿入し、removeAllは何もしません。私は何時間も何度も試してみましたが、ネットで検索したところ、コードはシンプルでうまくいくようですが、まだ動作していません。 – Shaurya