将模型传递给AngularJS中的指令

时间:2015-09-22 16:55:33

标签: ruby-on-rails angularjs angularjs-directive angular-formly

我在页面上有4个选择下拉列表。在每个下面我希望动态HTML基于使用angular-formly的选择生成。

到目前为止,我有这个:

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"

1 个答案:

答案 0 :(得分: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语法

我也不确定你是否需要从控制器

传递给指令的初始值