事先从服务填充数据中的动态指令元素失败

时间:2015-06-22 06:57:12

标签: javascript jquery angularjs

找到一些使用object通过指令创建动态字段的解决方案。也可以创建动态指令

var app = angular.module('app', []);
app.directive('field', function() {
  return {
    restrict: "E",
    scope: {
      placeholder: '=',
      label: '=',
      id: '=',
      fielddata: '=',
      template: '='
    },
    link: function(scope, elem, attr) {
       scope.Options = {
        id: scope.$id + '_' + scope.id,
        label: scope.label,
        placeholder: scope.placeholder
      };
      scope.contentUrl = scope.template + '.html';
    },
    template: '<div ng-include="contentUrl"></div>'
  }
});

选中此plunker

动态指令,按预期生成字段,但其值不会按照预期在单独的字段中由ajax服务预先填充。相反,它将ID作为其值。

请建议。

1 个答案:

答案 0 :(得分:1)

您希望它显示什么?在Ctrl1控制器中,您可以定义这样一个动态模板:

html: '<div ng-repeat="elem in t.elements"><field id="elem.id" fieldData="elem.id" label="elem.label" template="elem.template_name" placeholder="elem.placeholder"></field></div>'

注意fieldData="elem.id"属性。您的field指令显示通过fielddata属性提供的值。你确实为它提供了元素id