所以我尝试将AJAX从我的结果列表中的单个solr文档转换为" doc视图"视图。我试图将AngularJS用于AJAX到我的视图渲染方法并以这种方式显示文档,但我似乎无法使角度工作,我不确定我是不是在Play方面正确地做事。你至少愿意告诉我,我尝试做的事情是否有效? Angular错误来自docText.text();呼叫。这是我的代码:
角度控制器代码:
var docText = $resource("http://localhost:9000/views/full-doc-text.html", {
text: {method: 'PUT'}
});
$scope.handleViewText = function(value) {
docText.text({doc: value});
}
Java代码:
public static Result viewText() {
JsonNode json = request().body().asJson();
//do stuff here
return ok(viewtext.render(json));
}
路线:
GET /views/full-doc-text.html controllers.Application.viewText()
答案 0 :(得分:1)
我看到上面代码有三个问题;
1. docText
资源的定义不正确。如果您阅读angularjs手册here,您会看到$resource
有4个参数。第一个是资源网址,第二个是参数默认值,第三个是自定义操作,第一个是资源选项,其中最后三个是可选的。在您的代码中,您将自定义操作作为第二个参数传递,该参数应该是第三个参数。由于您的资源url中没有任何参数,因此第二个参数必须为null。所以首先纠正是:
var docText = $resource("http://localhost:9000/views/full-doc-text.html", null, {
text: {method: 'PUT'}
});
2.您将text
操作的HTTP方法定义为PUT
但是在您的路径文件中,您正在处理GET
您所需操作的请求。您应该将路线定义更改为:
PUT /views/full-doc-text.html controllers.Application.viewText()
3.实现RESTFULL服务时,{。{1}}方法通常用于更新操作。在你的情况下,你似乎没有更新任何东西。因此我建议仅使用PUT
方法进行约定。