নকআউট.জেজে $ পিতামাতার অ্যাক্সেস সূচক


87

নকআউট.জেএস ২.১.০-তে, ফরচ বাইন্ডিং ব্যবহার করে কোনও টেম্পলেটে আপনি বর্তমান আইটেমের সূচকটি $ সূচক () ফাংশন সন্ধান করতে পারবেন। নেস্টেড ফোরচ বাইন্ডিংয়ে, কোনও টেম্পলেট থেকে $ পিতামাতার সূচকটি অ্যাক্সেস করার কোনও উপায় আছে কি?

বলুন আমার কাছে এই জাতীয় ডেটা স্ট্রাকচার রয়েছে:

var application = {
  topModel: [
    {
      {subModel: [{'foo':'foo'}, { 'bar':'bar'}]}, // this has top:0 and sub:0
      {subModel: [{'foo2':'foo2'}, { 'bar2':'bar2'}]} // this has top:0 and sub:1
    },
    {
      {subModel: [{'foo':'foo'}, { 'bar':'bar'}]} // this is top:1 sub:0
    },
    {
      {subModel: [{'foo':'foo'}, { 'bar':'bar'}]} // this is top:2 sub:0
      {subModel: [{'foo':'foo'}, { 'bar':'bar'}]} // this is top:2 sub:1
    },
    ...
    ]};

এটির সাহায্যে প্রতিটি সূচি ব্যবহার করে আমি প্রতিটি মডেলের পাথ মুদ্রণ করতে চাই: [টপমোডেল-সূচক সাবমোডেল-সূচক], যাতে আউটপুটটি এমন হবে:

[0 0]
[0 1]
[1 0]
[2 0]
[2 1]
...

আমি ফোরচ ব্যবহার করে মডেলগুলিকে আবদ্ধ করেছি, তবে সাবমোডেলের প্রসঙ্গে টপমোডেলের সূচকটি কীভাবে অ্যাক্সেস করব তা আমি বুঝতে পারি না। নিম্নলিখিত উদাহরণটি আমি চেষ্টা করেছি এমন একটি দৃষ্টিভঙ্গি দেখায়, তবে এটি কার্যকর হয় না, কারণ কীভাবে $ পিতামাতার রেফারারের সূচকটি অ্যাক্সেস করতে পারি তা বুঝতে পারি না।

<!--ko foreach: topModel -->
<!--ko foreach: subModel -->
  [<span data-bind="text: $parent.index()"></span>
  <span data-bind="text: $index()"></span>]
<!--/ko-->
<!--/ko-->

মুদ্রণ করা উচিত: 0 1, 0 2, 1 0, 1 1, 1 2, 2 0, 2 1, ...


আপনি আসলে যে প্রয়োজন হবে না ()পরে $indexআছে।
ম্যাথু শিনকেল

এছাড়াও, আপনি যদি নিজের সাথে একটি জিসফিল তৈরি করতে পারেন তবে এটি আরও সহজ করে দেবে। অথবা আপনার ডেটা উত্স পোস্ট করুন এবং মডেল কোড দেখুন।
ম্যাথু শিনকেল

আপাতত, আমি কেবল প্রোটোটাইপিংয়ে কাজ করছি, সুতরাং প্রদত্ত উদাহরণের চেয়ে আমার বেশি কিছু নেই। যদিও আমি অন্যান্য পন্থাগুলি ব্যবহার করে পরামর্শের জন্য উন্মুক্ত।
জার্গেন

হয়তো বর্ণনা কি আপনি, না করার চেষ্টা করছেন বদলে কিভাবে । একটি ভিন্ন পদ্ধতির হতে পারে।
ম্যাথু শিনকেল

ধন্যবাদ আমি আমার প্রশ্ন পরিবর্তন করেছি, এবং আশা করি এটি এখন আরও পরিষ্কার?
জর্জেন

উত্তর:


186

প্যারেন্ট অবজেক্ট ব্যবহারের সূচকটি অ্যাক্সেস করতে

$parentContext.$index()

বরং

$parent.index()

14
যদিও মস্তিষ্কহীনতার নামে অতিরিক্ত মাত্রায় স্পষ্ট করা যায়, তবুও আপনার $parentContext.$index()প্যারেন্সগুলির সাথে থাকতে হবে । ;।) এখানে আরও কিছু $ প্যারেন্টকন্টেক্সট , এফআইইউ।
রাফিন

মূল প্রশ্নটিতে ম্যাথিউর মন্তব্য অনুসারে @ আরফিন $ সূচকের পক্ষে নয়, "সেখানে $ সূচকের পরে আপনার আসলে (() দরকার নেই)। $ সূচকটি পর্যবেক্ষণযোগ্য না হয়ে একটি বিশেষ পরিবর্তনশীল।
ব্রেট স্মিথ

4
ধন্যবাদ - অবশ্যই লক্ষণীয়, যৌগিক মানের প্রসঙ্গে আপনাকে () যুক্ত করতে হবে তবে যদি আপনি কোনও উপাদানটিকে $ প্যারেন্টকন্টেক্সট $ সূচীতে আবদ্ধ করেন তবে আপনার প্রয়োজন নেই এমন প্রশ্ন অনুসারে সূচীকরণটি।
ব্রেট স্মিথ

4
প্রথম বন্ধনী প্রয়োজন$parentContext.$index()
জয়দার

4
$parentContext.$parentContext.$index()আপনি যেমনটি আশা করেন ঠিক তেমন কাজগুলি যুক্ত করতে চেয়েছিলেন ।
রায়ান হুইল

3

সবচেয়ে সহজ উপায়টি আপনি খুঁজে পেতে পারেন ক্রোমের জন্য "নক আউট প্রসঙ্গ" ডাউনলোড করা। এটি আপনাকে দেখায় যে কোন ডেটাটি কোন উপাদানটির সাথে আবদ্ধ এবং আপনাকে সেই নির্দিষ্ট বাউন্ড উপাদানটির জন্য উপলব্ধ ফাংশন / ভেরিয়েবলগুলি দেখতে দেয়। এগুলির মতো পরিস্থিতির জন্য এটি একটি আশ্চর্যজনক সরঞ্জাম।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.