1

ディレクティブを取得し、transclude: elementng-options を使用して選択要素にテンプレートを適用し、指定されたテンプレートで選択をラップしたいと考えています。

app.directive("ngSelect", function(){
  return {
  restrict: "A",
  replace:true,
  transclude: 'element',
  templateUrl: function(elem,attrs) {
     return 'select.html';
  },
  ...
  compile: function compile(cElement, cAttrs, cTransclude) {
    return{
      pre: function preLink(scope, aElement, aAttrs, aController){

      },
      post: function postLink(scope, aElement, aAttrs, aController){

      }
    }

使用法:

<select ng-select ng-label="Select 2" ng-model="data.select2" required ng-options="item.id as item.value for item in list"></select>

しかし、何らかの理由でラップされているのは ng-options からのオプションであり、select 自体ではありません。ここで最終的な DOM を見ることができます。

  <div class="col-xs-12 col-sm-6 col-md-3 col-lg-2  ..."> 
     <option value="?"selected="selected"></option>
     <option value="number:1" label="value1">value 1</option>
     <option value="number:2" label="value 2">value2</option>
     <option value="number:3" label="value 3">value</option>
  </div>

トランスクルージョンのある時点で選択要素が削除されたと思いますが、よくわかりません。私が見つけたngOptionstranclude: elementは少し混乱したことだけでした。

tranclude: elementこの select をand で正しく動作させるにはどうすればよいngOptionsですか? コンパイル/プリ/ポストリンク機能で何かできますか?

プランカー

4

0 に答える 0