我正在学习Angularjs并尝试首次在我的C#web MVC应用程序中实现它。
我无法从我的控制器返回的json格式数据显示在我的视图中,该视图使用Angular / Razor进行数据显示
在我的C#控制器中,我将json数据返回到我的coffe scrip / js
public ActionResult Load (string id){
//data retrieved from model and formatted in json here
return Json(jsonData ,JsonRequestBehavior.AllowGet);
在我的咖啡脚本中,我有:
define ['test'], (app) ->
($scope, $http, $location) ->
$scope.vData = (id) ->
$.ajax
url: 'Mobile/Load?id=1237'
.done (response) ->
alert response
$scope.vdata = [response]
$scope.$apply() unless $scope.$$phase
当我启动应用程序时,视图有一个我用来测试的警告按钮如果我可以看到json响应中的数据:
警报按以下格式显示数据:
{
"versions":{
"is_live":"true",
"type":"multiple",
"rendition":{
"@name":"My Test",
"@url":"http://test.net/location/test.m3u8",
"@thumbnail":"http:// test.net/location/testimg/cam.png",
"@thumbnail_update_interval":"10"
}
}
}
在我看来,我试图通过多种方式获取标签中的数据,但不成功:
<label>{{vdata.is_live}}</label>
<label>{{vdata.versions.is_live}}</label>
<label>{{is_live}}</label>
在我的浏览器中调试时,我注意到json数据是字符串格式而不是对象。
这可能是问题吗?
有人可以帮我用Angular从json数据中查看我视图中的数据吗?
答案 0 :(得分:2)
我会改变两件事。第一个如果json数据是字符串格式,你应该在客户端收到数据时使用JSON.parse(jsondata)解析它。
我不知道咖啡脚本,但我会用javascript添加缺少的内容,只是为了向您展示我会改变的内容:
define ['test'], (app) ->
($scope, $http, $location) ->
$scope.vData = (id) ->
$.ajax
url: 'Mobile/Load?id=1237'
.done (response) ->
alert response
$scope.vdata = JSON.parse( [response] )
$scope.$apply() unless $scope.$$phase
然后尝试:
<label>{{vdata.versions.is_live}}</label>
让我知道它是否有效!