我需要将ng-click中的元素作为参数传递。
<textarea id="chat-msg" name="chat-msg" class="p-r-40 chat-reply form-control"></textarea>
<img src="libs/converse/lib/emoji/smile.png" class="image-size" ng-click="insertEmotion(document.getElementById('chat-msg'))" ></img>
这里onclick运行正常,但我怎么能在ng-click中传递它?
答案 0 :(得分:1)
考虑将document.getElementById
部分移到insertEmotion()
函数中。
像这样调用insertEmotion('chat-msg')
,其中insertEmotion
将元素名称作为参数。
答案 1 :(得分:0)
听起来你可能正试图在控制器中操纵DOM,这实际上不是“角度方式”。更好的方法可能是寻求将textarea
绑定到模型变量,并使ngClick
指令更新模型变量。
例如:
<textarea ng-model="chat"></textarea>
<img src="libs/converse/lib/emoji/smile.png" class="image-size" ng-click="chat = chat + ':-)'" ></img>
这是一个说明这一点的傻瓜:http://plnkr.co/edit/d0hMVbrwKy6nBgVxWBQP?p=preview
答案 2 :(得分:0)
也许尝试创建聊天对象并将模型分配给这样的视图?
var app = angular.module('emotionApp',[]);
app.controller('EmotionCtrl',function($scope) {
$scope.chat = 'Chat message';
$scope.insertEmotion = function(emotion) {
$scope.chat = $scope.chat + emotion;
};
});
<div ng-app="emotionApp" ng-controller="EmotionCtrl">
<textarea ng-model="chat"></textarea>
<hr>
<button ng-click="insertEmotion(':)')">Insert</button>
</div>