2016-02-26 66 views
0

我試圖在kendo編輯器中用ng-click事件插入html標籤。當我得到插入的數據並顯示在div中時,ng-click不起作用。在JavaScript中正常的onclick工作正常,但ng-click不是。ng-click在kendo編輯器中不起作用

下面給出的是在編輯器文本區域插入的<a>標籤。

<a ng-click="testMsg()"><span>' + nodeId + '</span></a>

關於如何解決這個任何想法?

+0

做一個plunkr? –

+0

我不知道如何在plunkr中創建它。這只是一個直接的場景,rt?讓我知道你是否需要更多的澄清。 –

+0

函數正在被調用,是否正確? –

回答

0

onclick是DOM本地事件處理程序,但ng-click不是。只有那些在範圍中註冊的函數纔可用。如我的示例所示,任何內置函數都不可用於ng-click,而沒有明確指定範圍。

var app = angular.module('app1', []); 
 
app.controller('ctrl1', ['$scope', function($scope) { 
 
    function testMsg() { 
 
    alert('Hello world'); 
 
    } 
 
    
 
    $scope.goodTestMsg = testMsg; 
 
}]);
<div ng-app="app1" ng-controller="ctrl1"> 
 
    <p ng-click="goodTestMsg()">Click me will show a message</p> 
 
    <p ng-click="testMsg()">Click me should happen nothing</p> 
 
</div> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

TL; DR:方法testMsg不暴露到控制器範圍。嘗試添加像$scope.testMsg = testMsg;這樣的東西將解決您的問題。

+0

它不僅是關於控制器,即使我嘗試了一個簡單的警報(),它不工作,該事件不會觸發,如果我們改變爲javascript的onclick,然後alert()彈出 –

+0

Html標籤插入到編輯器內容使用彈出窗口在插入編輯器textarea後,我們如何確保ng-click事件在範圍內?被稱爲'TestMsg()'的方法已經添加到控制器中了。編譯或什麼東西,以帶來更新的HTML ng-click作用域?我甚至嘗試過'$ compile(customHtml)($ scope);'哪些沒有工作! –

+0

編譯工作成功atlast。但該方法不調用正確。 –

0

而不是textarea,嘗試使用div。我面臨類似的問題,部分用div來解決。但是,它將進行內聯編輯,因爲工具欄將被隱藏,並且僅當您將光標對準div時纔會顯示。