관찰 가능 항목으로 성 및 이름이 있으며 사용자 이름이 계산됩니다. 사용자 이름을 너무 쉽게 관찰 할 수 있습니까?KnockoutJS에서도 관찰 가능하게 계산할 수 있습니다.
답변
Knockout에서 계산 된 값은 이미 관찰 가능한 유형입니다. 당신이 할 수 있기를 원하는 것이 계산 된 값으로 설정 되었다면, read
과 write
속성을 사용하여 계산할 수 있습니다. 여기
var fn = ko.observable("Jimbo");
var ln = ko.observable("Jangles");
var vm = {
myComputed : ko.computed({
read: function() { return fn() + " " + ln(); },
write: function (value) {
var pieces = value.split(" ");
fn(pieces[0]);
ln(pieces[pieces.length -1]);
}
})
};
를 작동 예제 :
여기서 성과 이름을 설정하는 조 예가 매우 http://jsfiddle.net/xxkLs0p8/
빠른 작동 예제에 감사드립니다. 정말 감사합니다. 문제는 사용자 이름을 변경하면 다른 관찰 가능 항목을 업데이트하지 않아야한다는 것입니다. 짧게 - 계산을 변경하면 관찰 가능한 다른 값에 영향을 미치지 않습니다. 예 : 두 개의 텍스트 상자 데이터가 동일한 계산에 바인딩됩니다. 한 텍스트 상자의 값을 업데이트하여 다른 텍스트 상자의 값을 업데이트해야합니다. – Sabby62
그런 경우 별도의 변수를 업데이트하고 읽을 때 정의되지 않았는지 확인할 수 있습니다. 이런 식으로 : http://jsfiddle.net/xxkLs0p8/2/ –
그것은 작동하지 않습니다 http://jsfiddle.net/xxkLs0p8/3/ – Sabby62
계산은 이미 관찰. 정확히 무엇을하고 싶습니까? –
나는 성과 이름을 기반으로 사용자 이름을 계산 중입니다. 텍스트 상자에 바인딩 된 데이터입니다. 텍스트 상자를 편집해도 계산 된 항목이 업데이트되지 않습니다. – Sabby62
녹아웃은 가치를 취하고 그것을 구성하는 변수로 나누는 방법을 알아야합니다. 이를 위해 하나의 입력 값에서 많은 관찰 가능한 값으로 변환하는 방법을 설명하는'write' 함수가 필요합니다. 데모로 내 답변의 업데이트를 확인하십시오. –