2012-03-31 3 views
0

이 간단한 구현처럼 보인다 :Knockout.js 사용자 정의 함수를 반환하는 기능은

ko.observableArray.fn.findEl = function(id) { 
    return ko.computed(function() { 
     var ary = this(); 
     return _.any(ary, function(user) { return user.id() === id;}); 
    }, this); 
}; 

그러나 내가 그것을 호출 할 때처럼 :

user.current.following.findEl(valueAccessor()) 

그것은 함수를 반환 전화하라고 요구 findEl은 다음과 같습니다 :

user.current.following.findEl(valueAccessor())() 

물론 이것은 이상적이지 않습니다.

답변

1

맞아요, 실제로 계산 된 관찰 가능 함수가 반환됩니다. 저는 알고 있다고 확신합니다. 그것이 의미하는대로 당신은 findEl 함수 내에서 반환되는 계산 된 관찰 가능 값 접근자를 호출하고 그 값을 반환하는 것이 좋습니다. 최소한 하나의 함수 안에 유지되므로 매번()() 함수를 호출 할 필요가 없다는 점에 대해 걱정할 필요가 없습니다.

1

당신이 당신의보기 모델에 새로운 관찰을 정의하는 데 사용할 경우에만 작동합니다

function User() { 
    this.following = ko.observableArray([]); 
    this.el = this.following.findEl(valueAccessor()); 
} 
관련 문제