首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在angularjs中获取json响应对象的最佳实践

在angularjs中获取json响应对象的最佳实践
EN

Stack Overflow用户
提问于 2016-10-12 06:40:41
回答 1查看 908关注 0票数 1

我有一个API,它返回一个json数组对象,现在,我在我的Controller中得到这样的json,它工作得很好:

代码语言:javascript
复制
angular.module('lyricsApp', [])
.controller('LyricsController', ['$scope', 'ApiCall', function ($scope, ApiCall) {
    $scope.lyrics = {
        id: "",
        songName: "",
        singerName: "",
        writtenBy: "",
        lyricText: "",
        isEnable: "",
        created_at: "",
        updated_at: ""
    };

    $scope.searchLyric = function () {
        var result = ApiCall.GetApiCall().success(function (lyrics) {
            $scope.lyrics.id = lyrics.data.id
            $scope.lyrics.singerName = lyrics.data.singerName;
            $scope.lyrics.songName = lyrics.data.songName;
            $scope.lyrics.writtenBy = lyrics.data.writtenBy;
            $scope.lyrics.lyricText = lyrics.data.lyricText;
            $scope.lyrics.isEnable = lyrics.data.isEnable;
            $scope.lyrics.created_at = lyrics.data.created_at;
            $scope.lyrics.updated_at = lyrics.data.updated_at;   
        });
    }
}])

但我觉得这不是一个好做法,我已经试过了:

代码语言:javascript
复制
var result = ApiCall.GetApiCall().success(function (lyrics) {
     $scope.lyrics=lyrics.data;
});

在这种情况下,我得到了未定义的值:

代码语言:javascript
复制
console.log($scope.lyrics.id); // show Undefined

所以,如果你们能提出更好的建议,我会很感激的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-12 06:49:53

你做的是对的,除了console.log。如果在完成分配之前执行了log语句,则将得到未定义的值。

我也不明白你为什么要做var result =

你可以简单的做

代码语言:javascript
复制
ApiCall.GetApiCall('v1', 'lyrics', '1').success(function (data) {
    $scope.lyrics = data.data;
    console.log($scope.lyrics.id);
}).error(fucntion(data){
    console.log(data);
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39992034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档