0

私は Angularjs を学習しており、初めて C# Web MVC アプリケーションに実装しようとしています。

データ目的でAngular/Razorを使用するビューに表示するためにコントローラーから返されたjson形式のデータを取得できません

C#コントローラーで、jsonデータをコーヒーの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

私は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 に答える