2017-10-17 95 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

嘗試改變href="#"href="javascript:void(0)"

+0

好吧,我不能這樣做,不幸的是,因爲a是用jstree插件生成的,我不是在我的代碼中創建它的人。 –

+0

我發現一個解決方案,我可以添加'javascript:void(0)',但它仍然不起作用 –

+0

我不認爲這是問題,因爲onclick工作 –

0

我相信你患的問題是,因爲AddActionButtons是動態生成的字符串,角不能識別的指令爲現有的。

你可能會需要使用$編譯服務:

https://docs.angularjs.org/api/ng/service/ $編譯

此外,諮詢這樣的回答:

Compiling dynamic HTML strings from database

+0

我已經知道'$ compile'服務,但不幸的是它不會在這種情況下工作,請檢查我的更新。 –

+0

我假設你需要返回節點作爲'value.map'的一部分讓jsTree工作?當你將一個對象(從'$ compile'返回的內容)連接到一個字符串時,該字符串被強制轉換爲'[object Object]'。 –

+0

個人而言,我會建議尋找一個現有的基於Angular的樹指令,該指令在框架內工作,而不是使用非角度的jQuery插件。 –