أنغولارجس:كيفية تعيين الكائن إلى سمات هتمل
-
20-12-2019 - |
سؤال
اسمحوا لي أن أصف ما أحاول القيام به.أنا بناء التوجيه نانوغرام ديناميكية حقا لبناء الجدول على أساس مجموعة البيانات وكائن التكوين المقدمة.ما أريد معرفته هو كيفية تعيين السمات ديناميكيا بناء على كائن في النطاق.لنفترض أن لدي كائنا في مكان ما في النطاق مثل:
$scope.inputs.myInput = {
type : "number",
size : 3,
min : 0,
...
}
وهلم جرا وفي مكان ما في قالب بلدي هو
<tr><td>other stuff</td><td><input {{assign the attributes somehow}} /></td></tr>
والنتيجة ستكون:
<tr><td>other stuff</td><td><input type='number' size='3' min='0' ... /></td></tr>
هل هذا ممكن بطريقة أو بأخرى?
ما حاولت:حاليا ، تمكنت من إنشاء إدخال لكل عنصر في مصفوفة الإدخال في كل صف ويمكنني تعيين نوع حسب type={{type}}
ولكن سمات هتمل يمكن أن تختلف لكل نوع من عنصر الإدخال وأعتقد أنه سيكون من سيئة لتعيين سمات إلى عنصر "الثابت ترميز" الطريقة وحصلت على تمسك هنا.
شكرا مقدما على أي ردود فعل!
المحلول
.directive('dynamicAttributes', function($parse){
return function($scope, $element, $attrs) {
var attrs = $parse($attrs.dynamicAttributes)($scope);
for (var attrName in attrs) {
$attrs.$set(attrName, attrs[attrName]);
}
}
})
مجرد تمرير الكائن الخاص بك من أزواج اسم قيمة السمة إلى dynamic-attributes
السمة والتوجيه سوف إضافته لك:
dynamic-attributes="{style:'background: red;height:200px;', class: 'red'}"
في حالتك سيكون شيئا من هذا القبيل:
<input dynamic-attributes="inputs.myInput">