2013-06-12 3 views
-1

다음 피들/코드에서 viewModel.visibleItem.push는 작동하지만 viewModel.showItem은 작동하지 않는 이유는 무엇입니까?viewmodel 기능이 작동하지 않습니까?

http://jsfiddle.net/scottbeeson/SRUKN/20/

var viewModel = { 
    searchResult: ko.observableArray(ko.utils.arrayMap(dummyResults, function (item) { 
     return new SearchResult(item); 
    })), 
    visibleItem: ko.observableArray(ko.utils.arrayMap(dummyItems, function (item) { 
     return new VisibleItem(item); 
    })), 
    showItem: function (item) { 
     visibleItem.push(item); 
    } 
}; 

ko.applyBindings(viewModel); 

$(document).on('click', '.result', function() { 
    var item = ko.dataFor(this); 
    //viewModel.visibleItem.push(item); 
    viewModel.showItem(item); 
}); 

갱신 고정 오타, 업데이트 된 코드와 바이올린.

+1

'showItem'' showItem : function (item) { this.visibleItem.push (item);에'this '가 없습니다. }'. 나에게 이것은 여전히 ​​오탈자입니다 ... 그리고 오타를 남겨 두어야합니다 : http://meta.stackexchange.com/questions/167342/close-all-the-typo-questions – nemesv

+0

글쎄 그것은 오타가 아니 었습니다. 그것이 필요하다는 것을 알지 못했지만, 나는 여전히이 질문을 닫고 일어난 적이없는 척합니다. :) –

답변

2

viewmodel에 visibleItems을 정의하지 않았으므로 존재하지 않는 배열로 푸시하려고합니다.

오타?

+0

: facepalm : thanks –

+0

오타의 경우에 바람직한 행동은 무엇입니까, 대답을 수락하거나 질문을 삭제하십시오 ? –

+0

JS에서 특히 우리에게 좋은 일이 일어납니다. –

관련 문제