0

我正在学习 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 数据中显示数据吗?

4

1 回答 1

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>

让我知道它是否有效!

于 2013-07-17T17:06:00.357 回答