Transclude不适用于带有ng-options的select

时间:2014-09-11 14:52:53

标签: jquery css angularjs angularjs-ng-transclude

我找到了关于设计自定义选择框的this篇文章。 我决定将jquery函数包装在一个指令中:

angular.module('App')
  .directive('customSelect', function () {
    return {
      template: '<span class="select-wrapper">' +
          '<div ng-transclude></div>' +
          '</span>' +
        '<span class="holder"></span>',
      transclude: true,
      restrict: 'A',
      priority: 1000,
      link: function postLink(scope, element, attrs) {
          //pass
      }
    };
  });

HTML:

<div class="col-lg-12 left">
    <select custom-select ng-options="productGroups.indexOf(product) + '' as product.name for product in productGroups" ng-model="userData.pg"></select>
</div>

但由于某些原因它只是没有做任何事情

发现了this github问题,该问题涉及同一主题,但并没有真正解决我的问题。

1 个答案:

答案 0 :(得分:1)

您是否需要在同一元素中使用select和ng-options?我猜想ng-options设置为&#39; terminal:true&#39;非常像ng-repeat。尝试将选项嵌套在单独的div中。

我想我之所以说ngOptions指令定义中的某些内容可能会导致自定义选择出现问题,因此要么尝试在angular.js中调试它,要么编写自定义选项指令。如果你将一个数组传递给你的指令定义中的编译函数,你可能会在一个&#39;选项中复制数组。 HTML。这与ngRepeat的工作方式类似。