对角度有新意,我被建议不要使用带有jquery的angular,但是,我仍然需要使用jquery,因为它更方便。基本上,我构建一个函数得到一个评论列表
function showComment(){
app.controller("commentController", function($scope,$http) {
var url="/attraction/commentlist";
var formData = {id:"1"};
var postData = "data="+JSON.stringify(formData);
$http.post(url,postData).success(function(response) {
if(response!=false){
if(response.length==0){
$("#commenTable").hide();
}else{
$scope.comments = response;
}
}
});
});
}
然后我想在使用jquery
获取数据时回忆这个函数 $.ajax({url: "/attraction/addcomment", type:"post",data:form.serialize(), success: function(result){
alert("haha");
showComment();
$("#attractioncomment-comment").val("");
$("#attractioncomment-captcha").val("");
$.get("/attraction/captcha",{"refresh":1},function(data){
$("#attractioncomment-captcha-image").attr("src",data.url);
});
}});
失败,showcomment()
未使用最新条目进行更新。请帮忙。
答案 0 :(得分:0)
在showComment()函数中,您只是定义了控制器,但它永远不会被运行。您应该以角度方式定义控制器,并在某些DOM或路径上使用它。
还有一些观点:
1.你在showComment()函数中创建一个控制器?我从来没有看到那种用法,控制器是否正常工作?
2.您应该使用angularjs的数据绑定来填充注释数据,但不能以jquery方式设置val()
你应该使用ng-show来显示/隐藏某些东西,而不是jquery方式
4.应该使用$ http.get()或post()。
你应该继续使用jquery的唯一原因是,一些js插件或包将使用jquery,你想直接使用它们而不创建一些指令。
答案 1 :(得分:0)
这不是控制器的工作方式,朋友。您不应该直接将控制器作为函数执行。尝试更像
的东西 app.controller("commentController", function($scope,$http) {
// Create a function inside the controller
function showComment() {
var url="/attraction/commentlist";
var formData = {id:"1"};
var postData = "data="+JSON.stringify(formData);
$http.post(url,postData).success(function(response) {
if(response !== false){
if(response.length === 0){
$("#commenTable").hide();
}else{
$scope.comments = response;
}
}
});
}
// Execute the function
showComment();
});
我还没有真正检查过你的其余代码,但这取决于你。