I는 2 차원 관찰 어레이라는 텍스트 필드 가지고녹아웃 JS : 인자로 관찰 배열을 전달
var t1 = ko.observableArray([{val: 0}, {val:0}])
self.textFields = ko.observableArray([t1]);
그리고 I가 그 해결라는 함수 인수 취하도록되어있다 :
self.solve = function(arr){
console.log(arr);
}
하여 내 HTML, 해결할 인수로 textFields를 전달하는 링크 클릭과 해당 함수를 연결했습니다.
<a id='solveBtn' href='#' data-bind='click: solve(textFields)'>Solve</a>
나는 이제 textFields 배열을 인쇄 해 보았습니다. 그러나 대신, 나는 []를 얻는다. Chrome에서 디버거의 변수를 보면 []도 보입니다. 왜 그런가요? 왜 TextField가 제대로 전달되지 않아 해결되지 않습니까?
편집 :
self.solve = function(arr){
console.log(arr());
}
를하지만이 (가) '정상'배열을하도록되어 다른 기능이 관찰 배열을 (전달하려는 알고
내가 JS 지금과 같이 만들어 그것을 :var normalize = function(arr){
var retArr = [];
console.log(arr().length);
for(var i = 0; i < arr.length; i++){
var temp = [];
for(var j = 0; j < arr()[i]().length; j++){
temp.push(arr()[i]()[j].val);
}
console.log(temp);
retArr.push(temp);
}
return retArr;
}
을 console.log (편곡은()) 나에게 다음과 같은 오류를 제공합니다 : 메시지 : 객체가 함수가 아닙니다 나는 정상적인 배열로 편곡 취급 할 때,에 대한 루프가 실행되지 않습니다.. 나는 arr [i]의 길이는 0입니다.
답장을 보내 주셔서 감사합니다.
토니
답장을 보내 주셔서 감사합니다. 두 번째 제안을 시도했는데 이제는 [function, function]처럼 보이는 콘솔 출력을 제공합니다. 디버거에서이 객체를 자세히 살펴볼 때 매우 복잡해 보입니다. 그러나 그것은 녹아웃 때문일 수 있습니다. 더 중요한 문제는 다음으로 arr을 다른 함수에 전달하려고합니다. 그건 작동하지 않습니다. 내가 의미하는 바를 분명히하기 위해 질문을 편집했다. – tomet
죄송합니다, 콘솔에서 출력을 확인할 때 어떤 부분이 혼란 스럽는지 모르겠습니다. 다음 코드는 solve 메소드에서 결과를 인쇄하고 배열을 다른 메소드로 전달하여 결과를 인쇄합니다. self.solve = function (arr) { for (var i = 0; i
왜 arr.length를 사용할 수 있지만 arr(). length를 사용할 수없는 반면 arrParam.length는 사용할 수 있습니까? 전달 된 객체가 원래 객체와 동일하지 않습니까? – tomet