Angular2 * ngI যদি টেমপ্লেটে বস্তুর অ্যারের দৈর্ঘ্য পরীক্ষা করে দেখুন


90

নামে পরিচিত https://angular.io/docs/ts/latest/guide/displaying-data.html এবং গাদা ব্যবহার * ngIf কৌণিক 2 টেমপ্লেটে খালি বস্তুর চেক করতে কিভাবে এখনো পেয়ে বাক্যগঠন ত্রুটি স্ব প্রসঙ্গ undefined। যদি আমি * এনজিআই শর্তটি সরিয়ে ফেলি তবে আমি টিম মেম্বার্সগুলিতে মান পাচ্ছি যদি আমি এর মধ্যে কিছু মান চাপি তবে আমি টিম মেম্বারে মানগুলি অ্যাক্সেস করতে পারি।

আমার teamMemberঅবজেক্টটি হ'ল [ ] arrayআমি চেক করার চেষ্টা করছি শর্তটি অ্যারে আকারে খালি আছে।

চেষ্টা:

<div class="row" *ngIf="(teamMembers | json) != '{}'">

এবং

<div class="row" *ngIf="teamMembers.length > 0"> //Check length great than
                                                 throwing syntax error
            <div class="col-md-12">
                <h4>Team Members</h4>
                <ul class="avatar" *ngFor="let member of teamMembers">
                    <li><a href=""><gravatar-image [size]="80" [email]="member.email"></gravatar-image></a></li>
                </ul>
            </div>
        </div>

উপাদান :

@Component({
selector: 'pbi-editor',
})
export class AppComponent implements OnInit {
teamMembers: User[];

যেকোনো সাহায্যই অসাধারণ.


"সিনট্যাক্স ত্রুটি নিক্ষেপ" সঠিক ত্রুটির বার্তাটি কী?
গন্টার জ্যাচবাউয়ার

মূল ব্যতিক্রম: TypeError: self.context.teamMembers জন্য একটি ফাংশন নয় * ngIf = "teamMembers.length> 0" আমি উত্তরটা 1 মিনিট, অনুগ্রহ করে নীচের সঙ্গে চেষ্টা করবে
Karthigeyan Vellasamy

উত্তর:


290
<div class="row" *ngIf="teamMembers?.length > 0">

প্রথম যদি এই চেক teamMembersএকটি মূল্য আছে এবং যদি teamMembersএকটি মূল্য আছে না, এটি অ্যাক্সেস করতে চেষ্টা করে না lengthএর undefinedকারণ শর্ত প্রথম অংশ ইতিমধ্যে ব্যর্থ।


4
এখানে সঠিক লিঙ্কটি রয়েছে safe navigation operator: কৌণিক.ই.ও
মাইকেল

এটি অপারেটরকে ফেলে দিতে পারে>> 'বুলিয়ান' এবং 'নম্বর' ধরণের ক্ষেত্রে প্রয়োগ করা যাবে না। যখন --aot বা শঙ্কু সঙ্গে বিল্ড নিখুঁত
কৃষ

18

আপনি *ngIf="teamMembers != 0"ডেটা উপস্থিত কিনা তা পরীক্ষা করতে ব্যবহার করতে পারেন


2

সম্ভবত সামান্য ওভারকিল কিন্তু এনজিএক্স-যদি-খালি-বা-থাকা-আইটেমগুলি লাইব্রেরি তৈরি করেছে তবে এটি কোনও বস্তু, সেট, মানচিত্র বা অ্যারে খালি নয় কিনা তা পরীক্ষা করে। হতে পারে এটি কাউকে সাহায্য করবে। এটিতে এনজিআইএফের মতো একই কার্যকারিতা রয়েছে (তারপরে, অন্যথায় এবং 'হিসাবে' সিনট্যাক্স সমর্থিত)।

arrayOrObjWithData = ['1'] || {id: 1}

<h1 *ngxIfNotEmpty="arrayOrObjWithData">
  You will see it
</h1>

 or 
 // store the result of async pipe in variable
 <h1 *ngxIfNotEmpty="arrayOrObjWithData$ | async as obj">
  {{obj.id}}
</h1>

 or

noData = [] || {}
<h1 *ngxIfHasItems="noData">
   You will NOT see it
</h1>

1

তুমি ব্যবহার করতে পার

<div class="col-sm-12" *ngIf="event.attendees?.length">

ছাড়া event.attendees?.length > 0বা এমনকিevent.attendees?length != 0

কারণ ?.lengthইতিমধ্যে বুলিয়ান মান ফিরে আসে ।

অ্যারেতে কিছু থাকলে এটি এটি প্রদর্শন করবে না অন্যটি।


0

এই নিবন্ধটি কেন এটি আমার পক্ষে কাজ করছে না তা ভেবে অনেকটাই সহায়তা করেছিল। ওয়েবপেজটি লোড হচ্ছে এবং কৌনিক 2 কীভাবে একটি টাইমলাইন হিসাবে ইন্টারেক্ট করে এবং আমি যে সময়কালের কথা ভাবছি তার ঠিক বিন্দু নয় তা ভাবতে শিখিয়েছি। আমি অন্য কাউকে এই বিষয়টির উল্লেখ করতে দেখিনি, তাই আমি করব ...

* এনজিআইএফের প্রয়োজনীয়তার কারণ এটি অনিয়নিট বাকী জিনিসগুলি হওয়ার আগে সেই পরিবর্তনশীলটির দৈর্ঘ্য পরীক্ষা করার চেষ্টা করবে এবং "দৈর্ঘ্য অপরিজ্ঞাত" ত্রুটি ছুঁড়ে ফেলবে। সুতরাং আপনি কেন যোগ? কারণ এটি এখনও বিদ্যমান নেই, তবে শীঘ্রই এটি হবে will

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