Angularjs যদি-তবে-অন্যথায় প্রকাশে নির্মাণ করা হয়


109

আমি কীভাবে কোনওভাবে অ্যাংুলারজেস এক্সপ্রেশন-তে-অন্য নির্মাণ (টের্নারি-অপারেটর) ব্যবহার করতে পারি, উদাহরণস্বরূপ আমার কাছে ফাংশন $ স্কোপ.আইসিসিস্টস (আইটেম) রয়েছে যা বুল মানটি ফিরিয়ে দিতে হবে। আমি এরকম কিছু চাই,

<div ng-repeater="item in items">
    <div>{{item.description}}</div>
    <div>{{isExists(item) ? 'available' : 'oh no, you don't have it'}}</div>
</div>

আমি জানি যে আমি ফাংশনটি ব্যবহার করতে পারি যা স্ট্রিং ফিরিয়ে দেয়, আমি-তবে-অন্য নির্মাণকে অভিব্যক্তিতে ব্যবহার করার সম্ভাবনাটি আকর্ষণীয়। ধন্যবাদ।


3
চেক আউট করুনng-switch
— নীলশ

3
১.২ থেকে এখন এটি সমর্থিত।
— নীলস্কেপ

উত্তর:


219

কৌণিক অভিব্যক্তিগুলি 1.1.5 এর আগে টার্নারি অপারেটরটিকে সমর্থন করে না তবে এটি এর মতো অনুকরণ করা যায়:

condition && (answer if true) || (answer if false)

সুতরাং উদাহরণস্বরূপ, এই জাতীয় কিছু কাজ করবে:

<div ng-repeater="item in items">
    <div>{{item.description}}</div>
    <div>{{isExists(item) && 'available' || 'oh no, you don't have it'}}</div>
</div>

আপডেট: কৌণিক 1.1.5 টের্নারি অপারেটরদের জন্য সমর্থন যুক্ত করেছে:

{{myVar === "two" ? "it's true" : "it's false"}}

&& এর কি পালানো দরকার?
— 0xcaff

নিবন্ধন করুন আপনি (আপনার প্রকল্পের জন্য সম্ভব হলে) টর্নারি অপারেটরটি যেমন আমি আমার প্রশ্নের উত্তরে ব্যাখ্যা করেছি তেমন ব্যবহার করতে পারি।
— সেবাস্তিয়ান

কি @Sebastian <এবং >তুলনা অপারেটরদের হিসেবে?
— 0xcaff

@ ক্যাফিনেটমোনকি কোনও সমস্যা নেই, {{1> 0? সত্য: মিথ্যা}} বা {{1> 0}} যা আপনার পছন্দ হয়। {{1> 0} 1.0 1.0.8 এও কাজ করে, তবে টার্নারি অপারেটর তা করে না।
— সেবাস্তিয়ান

এটি কৌনিক-ইউআই উপাদানগুলির সেটিংসের অভ্যন্তরে কাজ করার কারণে এটি এখনও দুর্দান্ত উত্তর (যখন টের্নারি অপারেটর কোনও কারণে সেখানে কাজ করে না)। হতে পারে এটি কাউকে কৌণিক-ইউআই প্যারামিটার নির্ধারণে লড়াই করতে সহায়তা করে
— ওলগা জ্ঞানটেনকো

39

আপনি এই সামান্য প্লাঙ্কারের (1.1.5 উদাহরণে উদাহরণস্বরূপ) সংস্করণ 1.1.5 এবং তার পরে সংস্করণ থেকে টের্নারি অপারেটর ব্যবহার করতে পারেন :

ইতিহাসের কারণে (সম্ভবত plnkr.co ভবিষ্যতে কোনও কারণে নেমে যেতে পারে) এখানে আমার উদাহরণের মূল কোডটি রয়েছে:

{{true?true:false}}

ইতিহাসের কারণে (সম্ভবত plnkr.co ভবিষ্যতে কোনও কারণে নেমে যেতে পারে) এখানে আমার উদাহরণের মূল কোডটি রয়েছে:{{true?true:false}}
— সেবাস্তিয়ান

1
আপনাকে ধন্যবাদ হিসাবে ঠিক কী খুঁজছিলাম, প্রায় এটি করতে একটি ফিল্টার ব্যবহৃত হয়েছিল।
— ব্রিক

1
@ ইগরসিএইচ: আপনি গৃহীত উত্তরটি আপডেট করতে পারেন :)
— রেজওয়ান ফ্ল্যাভিয়াস পান্ডা

25

আপনি সহজে এনজি-শো ব্যবহার করতে পারেন যেমন:

    <div ng-repeater="item in items">
        <div>{{item.description}}</div>
        <div ng-show="isExists(item)">available</div>
        <div ng-show="!isExists(item)">oh no, you don't have it</div>
    </div>

আরও জটিল পরীক্ষার জন্য, আপনি এনজি-সুইচ স্টেটমেন্ট ব্যবহার করতে পারেন:

    <div ng-repeater="item in items">
        <div>{{item.description}}</div>
        <div ng-switch on="isExists(item)">
            <span ng-switch-when="true">Available</span>
            <span ng-switch-default>oh no, you don't have it</span>
        </div>
    </div>

এক্সপ্রেশনটির অভ্যন্তরের পরিবর্তে এটি উপাদান স্তরে এটি করার একটি সুবিধা হ'ল আপনি বিভিন্ন বিকল্পের স্টাইল এবং বিষয়বস্তুকে আরও কাস্টমাইজ করতে পারেন।
— ই

হ্যাঁ, আমি এই কার্যকারিতা সম্পর্কে জানি এটি সাহায্য করতে পারে তবে আমি নথিতে অতিরিক্ত ডিভ যুক্ত করতে চাই না। তবে ধন্যবাদ
— ইগোরচ

0

এটি এক লাইনে করা যেতে পারে।

{{corretor.isAdministrador && 'YES' || 'NÂO'}}

একটি tdট্যাগ ব্যবহার :

<td class="text-center">{{corretor.isAdministrador && 'Sim' || 'Não'}}</td>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.