【发布时间】:2015-03-21 16:23:56
【问题描述】:
我在 play frmaework 上用 angularjs 写了一个前端,用 scala 写了一个后端。现在我想通过调用一个也返回 json 对象的方法将 json 对象从 angular 发送到后端。我在 angularjs、scala 和路由文件中编写了以下代码`
angular.js
$scope.show=function(){
var url="localhost:9000"
var urlText=
{
"url":$scope.url
};
$http({
method:"GET",
url:url+"/getUrl",
params:{
data:urlText
}
})
.success(function(data){
$scope.url-title.push(data.title)
$scope.url-description.push(data.description)
$scope.url-img.push(data.img)
})
}
Controllers.scala
object Application extends Controller{
def returnUrl(text:JsValue):JsValue ={
val str=(text \ "url").as[String]
val obj=new UrlPreview()
obj.returnDescription(str)
val jsonObj:JsValue=Json.obj(
"title" ->obj.returnTitle(),
"description"->obj.returnDescription(),
"img"->obj.returnImage()
)
return jsonObj
}
}
Routes
GET /getUrl/{text} controllers.Application.returnUrl
`我是网络开发的新手。所以我没有足够的想法。如果您有任何想法或我在哪里做错了。请分享一些想法
【问题讨论】:
-
请发布您遇到的任何错误以及更具体的问题。你签出playframework.com/documentation/2.0/ScalaJson了吗?特别是关于使用 Json.toJson 和 Map 创建复杂的 Scala 对象?
-
@jspacek 方法 returnUrl 的参数不足:(文本:play.api.libs.json.JsValue)play.api.libs.json.JsValue。未指定的值参数文本。这是错误
-
听起来您没有将正确的参数传递给 returnUrl,我看到您的最后一行只有 {text}。您在 localhost:9000 上是否有来自您的播放 ui 的堆栈跟踪?这将提供更多信息。
-
我在路由文件 GET /getUrl/:text controllers.Application.returnUrl(text:JsValue)中有以下行
标签: json angularjs scala playframework-2.0