আমার একটি ফর্ম রয়েছে যা নীচের মত বুটস্ট্র্যাপ থেকে মার্কআপ ব্যবহার করছে:
<form class="form-horizontal">
<fieldset>
<legend>Legend text</legend>
<div class="control-group">
<label class="control-label" for="nameInput">Name</label>
<div class="controls">
<input type="text" class="input-xlarge" id="nameInput">
<p class="help-block">Supporting help text</p>
</div>
</div>
</fieldset>
</form>
সেখানে অনেকগুলি বয়লারপ্লেট কোড রয়েছে, যে আমি একটি নতুন নির্দেশকে হ্রাস করতে চাই - ফর্ম-ইনপুট, নীচের মত:
<form-input label="Name" form-id="nameInput"></form-input>
উত্পন্ন:
<div class="control-group">
<label class="control-label" for="nameInput">Name</label>
<div class="controls">
<input type="text" class="input-xlarge" id="nameInput">
</div>
</div>
আমি একটি সাধারণ টেম্পলেট মাধ্যমে এই অনেক কাজ।
angular.module('formComponents', [])
.directive('formInput', function() {
return {
restrict: 'E',
scope: {
label: 'bind',
formId: 'bind'
},
template: '<div class="control-group">' +
'<label class="control-label" for="{{formId}}">{{label}}</label>' +
'<div class="controls">' +
'<input type="text" class="input-xlarge" id="{{formId}}" name="{{formId}}">' +
'</div>' +
'</div>'
}
})
যাইহোক এটি যখন আমি আরও উন্নত কার্যকারিতা যুক্ত করতে আসি যা আমি আটকে যাচ্ছি।
আমি কীভাবে টেমপ্লেটে ডিফল্ট মানগুলি সমর্থন করতে পারি?
আমি আমার নির্দেশের উপর একটি typeচ্ছিক বৈশিষ্ট্য হিসাবে "টাইপ" পরামিতিটি প্রকাশ করতে চাই, যেমন:
<form-input label="Password" form-id="password" type="password"/></form-input>
<form-input label="Email address" form-id="emailAddress" type="email" /></form-input>
যাইহোক, যদি কিছু নির্দিষ্ট না করা হয় তবে আমি ডিফল্ট করতে চাই "text"। আমি কীভাবে এটি সমর্থন করতে পারি?
বৈশিষ্ট্যের উপস্থিতি / অনুপস্থিতির ভিত্তিতে আমি কীভাবে টেমপ্লেটটি কাস্টমাইজ করতে পারি?
আমি উপস্থিত থাকলে "প্রয়োজনীয়" বৈশিষ্ট্যটি সমর্থন করতে সক্ষম হতে চাই। যেমন:
<form-input label="Email address" form-id="emailAddress" type="email" required/></form-input>
যদি requiredনির্দেশে উপস্থিত থাকে তবে আমি এটিকে <input />আউটপুটটিতে উত্পন্ন উত্সে যুক্ত করতে চাই এবং অন্যথায় এড়িয়ে যাব । আমি কীভাবে এটি অর্জন করব তা নিশ্চিত নই।
আমি সন্দেহ করি যে এই প্রয়োজনীয়তাগুলি একটি সাধারণ টেম্পলেট ছাড়িয়ে গেছে এবং প্রাক-সংকলন পর্যায়গুলি ব্যবহার করতে শুরু করেছে, তবে আমি যেখানে শুরু করব সেখানেই আমার ক্ষতি হচ্ছে।
typeবাঁধাইয়ের মাধ্যমে যদি গতিশীল সেট করা হয় তবে কী হবে ।type="{{ $ctrl.myForm.myField.type}}"? আমি নীচে সমস্ত পদ্ধতি পরীক্ষা করে দেখেছি এবং এই দৃশ্যে কাজ করবে এমন কোনও সমাধান খুঁজে পাইনি। দেখে মনে হচ্ছে টেমপ্লেট ফাংশন যেমন বৈশিষ্ট্যগুলির আক্ষরিক মান দেখতে পাবে ।tAttr['type'] == '{{ $ctrl.myForm.myField.type }}'পরিবর্তেtAttr['type'] == 'password'। আমি হতভম্ব.