কোনও বস্তুর সম্পত্তি ko.observable হয় কিনা তা নির্ধারণ করুন


99

আমি নকআউটজেএস ২.০ সংস্করণ ব্যবহার করছি

আমি যদি কোনও সামগ্রীর সমস্ত বৈশিষ্ট্যের মধ্যে লুপ করছি, তবে প্রতিটি সম্পত্তি একটি কিনা তা আমি কীভাবে পরীক্ষা করতে পারি 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);
    }

তবে এখন পর্যন্ত সবকিছু মিথ্যা।

উত্তর:


158

নকআউট নামক একটি ফাংশন অন্তর্ভুক্ত 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.isComputedসরাসরি ব্যবহার করতে পারেন ।


4
ধন্যবাদ. আপনি কি অবগতভাবে কোনও পর্যবেক্ষণযোগ্য গণনা করা যায় তা কীভাবে জানবেন জানেন? আমি পর্যবেক্ষণযোগ্য একটি পর্যবেক্ষণযোগ্য অ্যারে কিনা তা নির্ধারণ করতে $.isArray(vm[key]())পারি তবে আপনি কীভাবে পর্যবেক্ষণযোগ্যকে একটি থেকে আলাদা করতে পারবেন জানেন ko.computed??
অ্যাডাম রাকিস

7
কেও ২.১ যা পরের কয়েক সপ্তাহের মধ্যে বাইরে থাকা উচিত একটি ko.isComputedফাংশন অন্তর্ভুক্ত করবে । কোডটি আমি উপরের উত্তরে যা যুক্ত করেছি তার সমতুল্য হবে।
আরপি নেইমায়ার

27

নকআউটের নিম্নলিখিত ফাংশন রয়েছে যা আমি মনে করি আপনি যা খুঁজছেন তা হ'ল:

ko.isObservable(vm[key])

3

আরপি নিমিমারের উত্তরটি সন্ধান করার জন্য, যদি আপনি কেবল "সাবস্ক্রাইবযোগ্য" (যা বেশিরভাগ ক্ষেত্রে হয় তবে) কিনা তা নির্ধারণ করতে চাইছেন। তারপরেও ko.isSubscribableপাওয়া যায়।


0

আমি ব্যাবহার করছি

ko.utils.unwrapObservable(vm.key)

আপডেট : সংস্করণ ২.৩.০ ko.unwrapহিসাবে বিকল্প হিসাবে যুক্ত করা হয়েছেko.utils.unwrapObservable


4
এটি একটি পর্যবেক্ষণযোগ্য মোড়ক সম্পত্তিটি পর্যবেক্ষণযোগ্য কিনা তা এটি পরীক্ষা করে না।
অ্যাডাম রাকিস

4
তুমি ঠিক বলছো. তবে সাধারণত যদি আপনার সত্যিকারের পর্যবেক্ষণযোগ্য মানটি জানতে হয়;)
ইভান রডরিগেজ

4
এটি এমন কোনও সম্পত্তি অ্যাক্সেসের জন্য একটি বৈধ উপায় প্রদান করে যা পর্যবেক্ষণযোগ্য হতে পারে বা নাও হতে পারে তবে এটি প্রতি সেচের প্রশ্নের উত্তর দেয় না।
ওজিল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.