0

複数のアイテムを追加するために ui-select2 を使用しています (タグモード)。アイテムを追加するときに、入力内に特別なUIを表示したいので、ディレクティブを追加したいと思います。formatSelection を使用して入力をフォーマットしようとしています:

function colorFormat(state) {
   return '<color-selection selections="option.selections"></color-selection>';
}

しかし、ディレクティブはコンパイルされませんでした。だから私はそれをコンパイルしました:

function colorFormat(state) {
  return $compile('<color-selection selections="option.selections"></color-selection>')(scope);
}

しかし今、値は ['object object'] です。フォーマットが私の結果を文字列化しているようです。ディレクティブにフォーマットするにはどうすればよいですか?

4

2 に答える 2

0

formatSelection は返される html を想定し、$compile サービスはオブジェクトを返します。私の意見では、要素をコンパイルして html 文字列を取得する必要があります。

これを試して。

  var compiledHTML = $compile('<color-selection selections="option.selections"></color-selection>')(scope);
    $timeout(function(){

        var formatString = '';
        for(i=0; i<compiledHTML.length; i++)
            formatString += compiledHTML[i].outerHTML;

        return formatString ;
    },0);

また、うまくいかない場合は、デバッグに役立つ小さな plunkr または fiddle を作成できるとよいでしょう。

于 2014-07-16T10:18:12.077 に答える