0

私は現在、次のようなjsonオブジェクトの形式でデータを返すコントローラーメソッドを呼び出そうとしています:

var url = "/campaigns/new_pair.json?id="+campaign_id+'&loser_id='+loser_id+'&winner_id='+winner_id;

        $.getJSON(url, function(){
           alert("success")
        })
        .done(function(data) {
           $pair.data('data', data);
        });

次に、そのデータにアクセスしようとすると、「未定義のプロパティ 'left_outfit' を読み取れません」というエラーが表示されます。

$pair.children(".vote-left").attr("data-votes",$pair.data('data').left_outfit.total_votes);

このコードを実行すると、成功アラートが発生します。また、URL に移動すると、次のように返されます。

{"left_outfit":{"outfit_id":1713,"c_outfit_id":1886,"liked":false,"image":"xxx","total_votes":26,"stylist":{"id":41,"image":"xxx","first_name":"xxx"}},"right_outfit":{"outfit_id":1187,"c_outfit_id":1191,"liked":false,"image":"xxx","total_votes":30,"stylist":{"id":53,"image":"xxx","first_name":"xxx"}}}

これはおそらく不正な形式ですか?

ご意見をお寄せいただきありがとうございます。

編集:

$pair は次のように定義されます。

Pairs.prototype = {

    // init
    _init: function () {
      var $pairs = $('body.open-lookbook-list > section > article'),
        self = this;

      $pairs.each(function (index, pair) {
        var $pair = $(pair);
        self._listeners($pair);
      });
    }

...

ところで、これは underscore.js を使用しており、バックエンドも Rails で行われています。

4

1 に答える 1