我正在努力学习发展,如果我有点不知情,那就很抱歉。我试着在这里寻找解决方案。 我必须发表评论并回复应用。我正在使用此功能向我的视图添加注释。
$scope.insertComment = function(){
var new_comment_id = $scope.comments[$scope.comments.length - 1].commentID +1;
var input = {
"commentID" : new_comment_id,
"userID": user.user_id,
"name": user.user_name,
"avatar_url": user.avatar,
"says": $scope.new_comment,
"likes": 0,
"like_status": false,
"replies": []
};
//Pushes changes to the global comment object
$scope.comments.push(input);
$scope.new_comment = '';
}
每个评论都有回复选项,以下事件显示一个表单以添加对评论的回复。
$(".no-url").click(function(){
console.log('test2');
$(this).parent().children('.reply-form').addClass('active');
});
我的问题是,当我添加新注释时,它没有与之关联的事件侦听器。怎么解决这个问题?
答案 0 :(得分:1)
$(SELECTOR)
将仅选择DOM中存在的那些元素。
$(PARENT_SELECTOR).on('click', '.no-url', function() {
$(this).parent().children('.reply-form').addClass('active');
});
但更好和推荐的解决方案是使用ng-click
指令。
答案 1 :(得分:1)
HTML:
<div comment-click>
//your comment html will goes here.
</div>
JS:
app.directive("commentClick",function(){
return {
link : function(scope,ele,attr){
ele.on('click',function(){
//put here your commnet scropt
})
}
}
})
将此comment-click
属性添加到您要在其上绑定点击事件的新添加的DOME元素
答案 2 :(得分:1)
以下是简单的代码,如何只使用angularjs而不涉及jQuery
.parent{
position: relative;
width: 300px;
height: 150px;
border: 1px solid black;
overflow: hidden;
}
.child{
height: 150px;
width: 312px;
padding-right:15px;/* change as per your browser scroll*/
overflow-y: scroll;
}