2017-10-17 10 views
1

内では動作しません。私は、次のようにアクションボタンのセットを追加したいjstreeと協力し、foreachのノードだ:ngのクリックが<a>タグ

<span class="action-button-container"> 
    <md-button class="md-icon-button" aria-label="Nouveau" ng-click="createNode($event)"> 
     <md-icon class="material-icons">add_circle</md-icon> 
    </md-button> 
    <md-button class="md-icon-button" aria-label="Modifier" ng-click="renameNode($event)"> 
     <md-icon class="material-icons">edit</md-icon> 
    </md-button> 
    <md-button class="md-icon-button" aria-label="Supprimer" ng-click="removeNode($event)"> 
     <md-icon class="material-icons">delete_circle</md-icon> 
    </md-button> 
</span> 

だから何私がやったことですjstreeをラップし、私が作成した指令は、私がノードを反復処理し、ノードのテキストにこれらのアクションボタンをCONCAT:

value.map(function(node){ 
    node.text = node.text + addActionButtons(); 
    return node; 
}); 

addActionButtons()は、単に上記にアクションボタンの文字列を返します。

したがって、この場合にはjstreeには、以下のように、aタグ内にアクションボタンを追加します。

<a class="jstree-anchor" href="#" tabindex="-1" id="ajson1_anchor"> 
    <i class="jstree-icon jstree-themeicon" role="presentation"></i>Label 1 
    <span class="action-button-container"> 
     <md-button class="md-icon-button" aria-label="Nouveau" ng-click="createNode($event)"> 
     <md-icon class="material-icons">add_circle</md-icon> 
     </md-button> 
     <md-button class="md-icon-button" aria-label="Modifier" ng-click="renameNode($event)"> 
     <md-icon class="material-icons">edit</md-icon> 
     </md-button> 
     <md-button class="md-icon-button" aria-label="Supprimer" ng-click="removeNode($event)"> 
     <md-icon class="material-icons">delete_circle</md-icon> 
     </md-button> 
    </span> 
</a> 

を私はここに直面してる問題は、私はいくつかのアクションボタンをクリックしたとき、それは誘発しないということですng-click

どうすればこの問題を解決できますか?

アップデート:私はそれが働いたonclick="alert('test')"を使用しようとしました

、問題がng-clickであるので、私はこのような何かをしなければならないと思う:

node.text = node.text + $compile(addActionButtons())(scope); 

しかし、これは文字列を追加します私のノードの前には [Object object]があり、アクションボタンはありません。

答えて

0

は、私はあなたが苦しんでいる問題はAddActionButtonsが動的に文字列を生成しているので、角度は既存のようにディレクティブを認識しないで信じるhref="#"

+0

まあ、私は残念ながら以来のことを行うことはできませんaはjstreeプラグインで生成され、私は自分のコードでそれを作成する人ではありません。 –

+0

私は 'javascript:void(0)'を追加することができる解決法を見つけましたが、それでもうまくいきません。 –

+0

onclickが動作するので問題はないと私は考えています –

0

href="javascript:void(0)"に変更してください。

おそらく$サービスをコンパイル使用する必要があります:

https://docs.angularjs.org/api/ng/service/ $、また

をコンパイルするこの回答を参照してください:

Compiling dynamic HTML strings from database

+0

私は '$ compile'サービス、残念ながら、この場合は動作しませんので、私のアップデートを確認してください。 –

+0

jsTreeを動作させるためにノードを 'value.map'の一部として返す必要があると仮定していますか?オブジェクト( '$ compile'から返されるもの)を文字列に連結すると、文字列は' [object Object] 'に強制変換されます。 –

+0

個人的には、非角度のjQueryプラグインを使用するのではなく、フレームワーク内で動作する既存のAngularベースのツリーディレクティブを探すことをお勧めします。 –

関連する問題