передача модели в директиву в AngularJS

0

У меня есть 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"
Теги:
angularjs-directive
angular-formly

1 ответ

1
Лучший ответ

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 для вашей системы шаблонов

Я также не уверен, что вам нужно исходное значение, переданное в директиву от контроллера

  • 0
    Но у ruleBldr есть правильные ключи, но все значения являются пустыми.
  • 0
    очень трудно понять, в чем именно заключается проблема. Создайте демо, которое повторяет это
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню