바인딩 내가하는 방법에 대한 몇 가지 지침을 찾고 있어요 다음을 작업하기 : http://jsfiddle.net/gdefilippi/qgr1s51s/4/녹아웃 필터링
을 바이올린에서 나는 두 observableArrays있어 위. 하나는 다른 하나에 필터를 제공합니다. 이것은 더 큰 프로젝트에서 비동기 호출에 적용됩니다.
어쨌든 나는 세그먼트로 반복하고 있으며 세그먼트로 필터링 된 항목을 반복합니다. 모든 것이 잘됩니다.
항목을 observableArray 항목으로 밀어 넣으면 결과가 리바운드되지 않습니다. 리바 인 딩이 정확하고 쉽게 작동하도록하려면 어떻게해야합니까? 아래의 코드와 피들에서 observableArray 항목 (add 함수 참조)에 항목을 추가하는 추가 기능을 찾으려면 바인딩이 필터링 함수에 대한 것입니다.
샘플 : 그것은 UI를 업데이트 할 수 있도록
var vm = function(){
var self = this;
self.items = ko.observableArray([
{label:'item1',segment:1},
{label:'item2',segment:2}
]);
self.segments = ko.observableArray([
{title:'Segment 1',id:1},
{title:'Segment 2',id:2}
]);
self.bysegment = function(segment){
return ko.utils.arrayFilter(self.items(), function (_item){
return _item.segment === segment;
});
};
self.add = function(id){
self.items.push({
label:'new',
segment:id
});
alert(items().length)
};
};
ko.applyBindings(vm);
<!-- ko foreach: segments -->
<h1 data-bind="text: title + ' : ' + id"></h1>
<!-- ko foreach: bysegment(id) -->
<span data-bind="text: label + ' : ' + segment"></span>
<!-- /ko -->
<button type="button" data-bind="click: add">Add</button>
<!-- /ko -->
덕분에, 제프리
그래서 나는 바이올린을 업데이트했으며, 원하는대로 작동하는 것으로 보입니다. 재미있는 점은 클릭 통화에 변수를 전달하지 말고 obj 호출을 전송할 수 있어야한다는 것입니다. http://jsfiddle.net/gdefilippi/qgr1s51s/9/ – gdefilippi
문제가 해결되었습니다. 그리고 물체로 작업 할 수있는 기회를 제공하십시오. 페이지의 구성 요소 수가 증가하면 도움이됩니다. – Azadrum