반응형
객체 속성이 ko.observable인지 확인합니다.
내가 사용하고 KnockoutJS의 버전 2.0.0
객체의 모든 속성을 반복하는 경우 각 속성이 ko.observable
? 지금까지 시도한 내용은 다음과 같습니다.
var vm = {
prop: ko.observable(''),
arr: ko.observableArray([]),
func: ko.computed(function(){
return this.prop + " computed";
}, vm)
};
for (var key in vm) {
console.log(key,
vm[key].constructor === ko.observable,
vm[key] instanceof ko.observable);
}
그러나 지금까지 모든 것이 거짓입니다.
Knockout에는 ko.isObservable()
. 라고 부를 수 있습니다 ko.isObservable(vm[key])
.
댓글에서 업데이트 :
다음은 무언가가 계산 된 관찰 가능 항목인지 확인하는 함수입니다.
ko.isComputed = function (instance) {
if ((instance === null) || (instance === undefined) || (instance.__ko_proto__ === undefined)) return false;
if (instance.__ko_proto__ === ko.dependentObservable) return true;
return ko.isComputed(instance.__ko_proto__); // Walk the prototype chain
};
업데이트 : KO 2.1+를 사용하는 경우- ko.isComputed
직접 사용할 수 있습니다.
Knockout에는 다음과 같은 기능이 있습니다.
ko.isObservable(vm[key])
RP Niemeyer의 대답을 고수하기 위해, 단순히 무언가가 "구독 가능"인지 확인하려는 경우 (가장 자주 발생 함). 그런 다음 ko.isSubscribable
도 사용할 수 있습니다.
나는 사용하고있다
ko.utils.unwrapObservable(vm.key)
업데이트 : 버전 2.3.0부터 ko.unwrap
대체로 추가되었습니다.ko.utils.unwrapObservable
참고 URL : https://stackoverflow.com/questions/9625591/determine-if-an-object-property-is-ko-observable
반응형
'Programing' 카테고리의 다른 글
Android junit 테스트 케이스에서 테스트 프로젝트의 컨텍스트 가져 오기 (0) | 2020.08.23 |
---|---|
CSS 속성 선택기가 href가 작동하지 않습니다. (0) | 2020.08.23 |
Jade 대신 Express에서 HTML 사용 (0) | 2020.08.23 |
내 JavaScript 함수 이름이 충돌하는 이유는 무엇입니까? (0) | 2020.08.23 |
HtmlWebpackPlugin은 루트가 아닌 웹 사이트 경로를로드 할 때 중단되는 상대 경로 파일을 삽입합니다. (0) | 2020.08.23 |