我正在尝试在剑道编辑器中插入带有 ng-click 事件的 html 标记。当我获得插入的数据并在 div 中显示时,ng-click 不起作用。javascript 中的正常 onclick 工作正常,但 ng-click 不是。
下面给出的是<a>
插入到编辑器文本区域的标签。
<a ng-click="testMsg()"><span>' + nodeId + '</span></a>
关于如何解决这个问题的任何想法?
我正在尝试在剑道编辑器中插入带有 ng-click 事件的 html 标记。当我获得插入的数据并在 div 中显示时,ng-click 不起作用。javascript 中的正常 onclick 工作正常,但 ng-click 不是。
下面给出的是<a>
插入到编辑器文本区域的标签。
<a ng-click="testMsg()"><span>' + nodeId + '</span></a>
关于如何解决这个问题的任何想法?
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;
内容将解决您的问题。
尝试使用 div 而不是 textarea。我面临着类似的问题,该问题已通过 div 部分解决。但是它将是内联编辑,因为工具栏将被隐藏,并且仅当您将光标放在 div 上时才会显示。