আমি হ্যান্ডেলবারগুলিতে সূচী দ্বারা কোনও অ্যাক্সেস অ্যারে আইটেমটি কীভাবে অ্যাক্সেস করব?


270

আমি হ্যান্ডেলবারের টেম্পলেটটির মধ্যে একটি অ্যারেতে একটি আইটেমের সূচকটি নির্দিষ্ট করার চেষ্টা করছি:

{
  people: [
    {"name":"Yehuda Katz"},
    {"name":"Luke"},
    {"name":"Naomi"}
  ]
}

এটি ব্যবহার করে:

<ul id="luke_should_be_here">
{{people[1].name}}
</ul>

উপরেরটি যদি সম্ভব না হয় তবে আমি কীভাবে এমন কোনও সহায়ক লিখব যা অ্যারের মধ্যে একটি স্পিফ আইটেম অ্যাক্সেস করতে পারে?

উত্তর:


409

এটা চেষ্টা কর:

<ul id="luke_should_be_here">
{{people.1.name}}
</ul>

26
এটি কোথাও নথিভুক্ত করা হয় না! অসাধারণ.
lukemh

25
আমি Expecting 'ID'r. {user.links.websites.1}} বা r. {user.links.websites.0} with
অলিভিয়ার

131
অলিভিওর লন্ডনে, আমাকে এরকম কিছু ব্যবহার করতে হয়েছিল {{ websites.[0] }}
ম্যাট

4
প্রকৃতপক্ষে, @ ম্যাট, এটি কেবল কিছু ভাগ্যবান ফর্ম্যাট নয়, তবে এটি নথিভুক্ত সিনট্যাক্সের মতো। (আমার উত্তর দেখুন।)
আরজান

5
একটি অ্যারের শেষ উপাদান সম্পর্কে কি?
উইন্ডুপটোয়

319

সূচকের আগে অতিরিক্ত ডট সহ নিম্নলিখিতগুলি আশানুরূপভাবে কাজ করে। এখানে, বর্গাকার বন্ধনীগুলি alচ্ছিক হয় যখন সূচকটি অন্য কোনও সম্পত্তি অনুসরণ করে:

{{people.[1].name}}
{{people.1.name}}

তবে বর্গাকার বন্ধনীগুলির জন্য প্রয়োজনীয় :

{{#with people.[1]}}
  {{name}}
{{/with}}

পরবর্তীকালে, বর্গাকার বন্ধনী ছাড়াই সূচী নম্বরটি ব্যবহার করলে একটি পাওয়া যাবে:

Error: Parse error on line ...:
...     {{#with people.1}}                
-----------------------^
Expecting 'ID', got 'INTEGER'

একদিকে যেমন: বন্ধনীগুলি (এছাড়াও) সেগমেন্ট-আক্ষরিক সিনট্যাক্সের জন্য ব্যবহৃত হয় প্রকৃত শনাক্তকারীদের (সূচী সংখ্যা নয়) উল্লেখ করার যা অন্যথায় অবৈধ হবে। একটি বৈধ শনাক্তকারী কী আরও বিশদ ?

(ওয়াইউআইতে হ্যান্ডলবারগুলির সাথে পরীক্ষিত))

2.xx আপডেট

আপনি এখন এর জন্য getসহায়কটি ব্যবহার করতে পারেন :

(get people index)

যদিও আপনি যদি সূচকে স্ট্রিং হওয়া প্রয়োজন সম্পর্কে কোনও ত্রুটি পান তবে এটি করুন:

(get people (concat index ""))

10
এটি উত্তর হওয়া উচিত কারণ এটি নির্বাচিত উত্তরের চেয়ে আরও পুঙ্খানুপুঙ্খ। বর্ধিত বন্ধনী আবশ্যক যখন সূচকটি শেষ হবে আমাকে কিছুক্ষণ আটকে রেখেছিল!
Modulitos

এই কৌশলটি! ধন্যবাদ ... এটির উপরে নির্বাচিত উত্তরটি দেয় নি, দয়া করে এটি সঠিক হিসাবে চিহ্নিত করুন।
মারিওআরায়া

1
{{#with people.1}}সমাধান আমার জন্য কাজ ব্যবহার com.github.jknack:handlebars:4.1.2
ফেরান মেলিনচ


17

যদি অনির্ধারিত বৈশিষ্ট্যগুলি আপনার খেলা না হয় তবে এখানে একই কাজ সম্পাদন করা যেতে পারে:

Handlebars.registerHelper('index_of', function(context,ndx) {
  return context[ndx];
});

তারপরে একটি টেমপ্লেটে

{{#index_of this 1}}{{/index_of}}   

আমি ধরার আগে উপরেরটি লিখেছিলাম

this.[0]

আমি নিজের সাহায্যকারী না লিখে কাউকে হ্যান্ডেলবারের সাথে খুব বেশি দূর থেকে যেতে দেখছি না।



8

আপনি যদি প্রথম / শেষ আনতে চান তবে দয়া করে এটি চেষ্টা করুন।

{{#each list}}

    {{#if @first}}
        <div class="active">
    {{else}}
        <div>
    {{/if}}

{{/each}}


{{#each list}}

    {{#if @last}}
        <div class="last-element">
    {{else}}
        <div>
    {{/if}}

{{/each}}

7

আপনি যখন অ্যারের সাথে লুপ করছেন eachএবং বর্তমান আইটেমের প্রসঙ্গে আপনি যদি অন্য অ্যারে অ্যাক্সেস করতে চান তবে আপনি এটি এর মতো করুন।

উদাহরণস্বরূপ ডেটা এখানে।

[
  {
    নাম: 'foo',
    অ্যাটার: ['বুও', 'চিড়িয়াখানা']
  },
  {
    নাম: 'বার',
    অনুগ্রহ: ['দূর', 'জার']
  }
]

attrঅ্যারেতে প্রথম আইটেমটি পেতে হ্যান্ডেলবারগুলি এখানে ।

ea {# প্রতি প্লেয়ার}
  <p> {{this.name}} </p>

  this {# এটির সাথে at tr
    <p> {{এটি [[0]}} </p>
  {{/সঙ্গে}}

{{/ প্রতিটি}}

এই আউটপুট হবে

<p> ফু </ p>
<p> বু </ p>

<p> বার </ p>
<p> দূরে </ p>

যদি অ্যাটর অ্যারেতে বিভিন্ন বস্তুর জন্য বিভিন্ন সংখ্যক উপাদান থাকে তবে এর মাধ্যমে পুনরাবৃত্তি করার প্রক্রিয়াটি কী হবে? উদাহরণস্বরূপ: [{নাম: 'ফু', অনুগ্রহকারী: ['বুও', 'চিড়িয়াখানা']}, {নাম: 'বার', অনুগ্রহকারী: ['দূর', 'জার', 'সর]}] তাহলে কেমন আপনি অ্যারের প্রতিটি অবজেক্টের জন্য সমস্ত অ্যাটর প্রদর্শন করতে যাচ্ছেন?
পার্থ রায়

আমি এটি চেষ্টা করি নি তবে আমি অনুমান করি this {# এটির সাথে।} এর thisপরিবর্তে কাজ করবেthis.[0]
ফাতিহ অ্যাসেট

1

অ্যারের নাম না থাকলে নিম্নলিখিত সিনট্যাক্সটিও ব্যবহার করা যেতে পারে (কেবল অ্যারেটি টেম্পলেটে দেওয়া হয়েছে):

  <ul id="luke_should_be_here">
  {{this.1.name}}
  </ul>

0

আমার ক্ষেত্রে আমি কাস্টম সহায়ক হিসাবে এমন একটি অ্যারের অ্যাক্সেস করতে চেয়েছিলাম,

{{#ifCond arr.[@index] "foo" }}

যা কার্যকর হয়নি তবে @ জুলেসবুউর দেওয়া উত্তরটি কাজ করেছিল।

কাজের কোড:

{{#ifCond (lookup arr @index) "" }}

আশাকরি এটা সাহায্য করবে! চিয়ার্স।

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