Knockout.js removeAll函数不起作用

Knockout.js removeAll function is not working

本文关键字:不起作用 函数 removeAll js Knockout      更新时间:2023-09-26

为什么removeAll和indexOf不起作用?排序、拼接、切片和反转都很好。

<%@ 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中根本不起作用。

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

标记和视图模型中存在问题,打开此fiddle上的浏览器控制台,查看不同操作的错误:

https://jsfiddle.net/z15d5awa/

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

myModel.val()这是什么?

RemoveAll只清空数组

myModel.array1([]);

用于移位:

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

如果你能创建一个这样的JSFiddle。