我创建了一个自定义指令(动态表单模板),它由一个对象创建。我无法在控制器中获取表单数据

时间:2014-07-24 06:36:08

标签: angularjs angularjs-directive angularjs-scope angularjs-ng-repeat

我已创建自定义指令。具有模板文件的指令,该文件通过控制器传递对象的帮助从帮助创建自定义。我无法在控制器中获取表单数据。

app.directive('tab', function () {
  return {
      restrict: 'E',
      templateUrl : 'template.html',
      scope : {
          data : '='
      },

      link: function (scope, element, attrs) {

      },
      controller: ['$scope', '$element', '$attrs',
         function ($scope, $element, $attrs) {
                $scope.updateEntity = function(){
                  $scope.formData = '';
              };
          }
       ]
  };

});

<tab data = "form"></tab>
click here

plnkr

1 个答案:

答案 0 :(得分:1)

我不知道为什么你突然开始使用ng-model =&#34; entity [...]&#34;。 试试这个:

<form class="form-horizontal">
        <div class="control-group" ng-repeat="element in data">
            <label class="control-label">{{element.label}}</label>
            <div class="controls" ng-switch="element.widget">
                <input ng-switch-when="text" type="text" ng-model="element.model" ng-required="element.required" />
                <select ng-switch-when="select" ng-model="element.model" ng-required="element.required" ng-options="o.key as o.name for o in element.options"></select>
            </div>
        </div>
    <button class="btn" ng-click="updateEntity()">Get Data</button>
</form>

如果您希望您的下拉列表具有默认值,即法语设置您的模型

language: {
    label: 'Language',
    model: 'fr',
    ...
}