如何使用Angular在视图中显示json数据

时间:2013-07-17 16:58:26

标签: asp.net-mvc angularjs coffeescript

我正在学习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数据中查看我视图中的数据吗?

1 个答案:

答案 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>

让我知道它是否有效!