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.