在ng-click中传递元素
Passing element in ng-click
我需要在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中传递它?
考虑将document.getElementById
部分移动到insertEmotion()
函数中。
像这样调用insertEmotion('chat-msg')
,其中insertEmotion
将元素名称作为其参数
听起来你可能试图在控制器中操纵DOM,这并不是真正的"Angular方式"。一个更好的方法可能是将textarea
绑定到一个模型变量,并让ngClick
指令更新模型变量。
<textarea ng-model="chat"></textarea>
<img src="libs/converse/lib/emoji/smile.png" class="image-size" ng-click="chat = chat + ':-)'" ></img>
下面是说明这一点的plunkr: http://plnkr.co/edit/d0hMVbrwKy6nBgVxWBQP?p=preview
也许尝试创建聊天对象并将模型分配给这样的视图?
http://jsfiddle.net/e9vJH/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>
相关文章:
- Ng隐藏在Ng-click元素之外
- AngularJs的ng-click$事件将子元素作为目标传递
- AngularJS:如何防止ng-click以子元素为目标
- 使用ng-click在作用域内定位元素
- 如何在angular js中为ng-click分配数组元素值
- AngularJS:如何将ng-click绑定到使用嵌入或对象元素插入的SVG图像
- ng-click似乎不适用于以编程方式插入的列表(li)元素
- ng-focus和ng-blur不起作用,而ng-click在输入元素中工作正常
- 如何在 ng-click 上为 AngularJS 添加类以查找多个元素(巧妙地)
- 仅显示多个ng-click事件angularjs中单击的元素值
- 如何使用angular js在html元素中绑定javascript和ng-click事件
- AngularJS-在多个元素上使用ng-click和ng-class时的奇怪行为
- 将焦点放在由 ng-click 调用的函数中的“this”元素上
- 在postlink阶段,尝试在使用element.append()创建的元素上使用ng-click
- 为什么我不能将ng-click附加到我的元素
- Angularjs通过ng-click函数访问这个元素
- Ng-click对BTN元素不起作用
- AngularJS:不能在ng-click之后设置元素的innerHTML
- 禁用此元素的ng-click
- AngularJS获取ng-click source元素