javascript - কিভাবে একটি এইচটিএমএল এলিমেন্টের আইডি বৈশিষ্ট্যটি গতিশীলভাবে angularjs(1.x) দিয়ে সেট করবেন?




angularjs-scope string-concatenation (5)

যদি আপনি এই প্রশ্নটিতে এসে থাকেন কিন্তু নতুন কৌণিক সংস্করণের সাথে সম্পর্কিত > = 2.0

<div [id]="element.id"></div>

টাইপ div একটি এইচটিএমএল এলিমেন্ট সরবরাহ করে, তার id এ্যাট্রিবিউটের মান সেট করা যায়, যা একটি সুযোগ পরিবর্তনশীল এবং একটি স্ট্রিং এর সংযোজন?


অফিসিয়াল ডকুমেন্টেশন চালু হিসাবে ngAttr নির্দেশিকা সম্পূর্ণরূপে এখানে সাহায্য হতে পারে

https://docs.angularjs.org/guide/interpolation#-ngattr-for-binding-to-arbitrary-attributes

উদাহরণস্বরূপ, div উপাদানটির id গুণমান মান সেট করতে, যাতে এটি একটি সূচী ধারণ করে, একটি ভিউ ফ্যাগমেন্ট থাকতে পারে

<div ng-attr-id="{{ 'object-' + myScopeObject.index }}"></div>

যা interpolated পেতে হবে

<div id="object-1"></div>

আপনি কেবল নীচের কাজ করতে পারে

আপনার জেএস মধ্যে

$scope.id = 0;

আপনার টেমপ্লেটে

<div id="number-{{$scope.id}}"></div>

যা রেন্ডার হবে

<div id="number-0"></div>

এটা ডবল কোঁকড়া বন্ধনী ভিতরে concatenate প্রয়োজন হয় না।


আমি এই আচরণ অর্জন পাওয়া একটি আরো মার্জিত উপায় সহজভাবে:

<div id="{{ 'object-' + myScopeObject.index }}"></div>

আমার বাস্তবায়ন করার জন্য আমি প্রতি এনজি-পুনরাবৃত্তি প্রতিটি ইনপুট উপাদান লেবেল সংযুক্ত করার জন্য একটি অনন্য আইডি চেয়েছিলেন। সুতরাং myScopeObjects এর ভিতরে থাকা বস্তুর একটি অ্যারের জন্য এটি একটি কাজ করতে পারে:

<div ng-repeat="object in myScopeObject">
    <input id="{{object.name + 'Checkbox'}}" type="checkbox">
    <label for="{{object.name + 'Checkbox'}}">{{object.name}}</label>
</div>

গতিশীলভাবে এই মত কন্টেন্ট যোগ করার সময় উড়ে অনন্য আইডস জেনারেট করতে সক্ষম হচ্ছে বেশ দরকারী হতে পারে।


শুধু <input id="field_name_{{$index}}" />






string-concatenation