У меня есть 4 выбора выпадающих списков на странице. Ниже каждого из них я бы хотел, чтобы динамический HTML генерировался на основе выбора с использованием углового формально.
У меня это до сих пор:
ruleSelect.js.erb
angular.module('productsApp')
.directive('ruleSelect', [
function() {
return {
restrict: 'E',
replace: false,
// require: 'ngModel',
scope: {
options: '=',
ruleBldr: '='
},
templateUrl: "<%= asset_path('shared/templates/ruleSelect.html') %>",
link: function(scope, element, attrs){
}
};
}]);
ruleSelect.html.slim
select.form-control ng-model="value"
option ng-repeat="field in options | fieldFilter:['templateOptions', 'label']" value="{{$index+1}}"
| {{field.templateOptions.label}}
form
formly-form fields="ruleBldr.form[value].fieldGroup"
Но в options
задано значение, но ruleBldr
пуст.
HTML-страница
.row
.col-md-offset-6.col-md-6 ng-repeat="obj in ruleB.formObjects"
label.control-label () {{obj.fieldGroup[0].template}}
rule-select options='obj.fieldGroup' ruleBldr="obj"
value
в ruleB.form[value]
нигде не определено.
Если форма должна быть создана на основе значения, выбранного в <select>
вам нужно добавить ng-model
в <select>
. Обратите внимание, что ng-model
всегда должна быть объектом.
link: function(scope, element, attrs){
scope.selectModel ={}
}
select.form-control ng-model="selectModel.value"
formly-form fields="ruleBldr.form[selectModel.value].fieldGroup"
Некоторые из них немного догадываются, поскольку описание проблемы очень плохое. Также я не знаю правильного синтаксиса html для вашей системы шаблонов
Я также не уверен, что вам нужно исходное значение, переданное в директиву от контроллера