我有一个返回 json 数组对象的 API,现在,我像这样在我的 Controller 中获取 json,它工作得很好:
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;
});
}
}])
但我认为这不是一个好的做法,我已经尝试过了:
var result = ApiCall.GetApiCall().success(function (lyrics) {
$scope.lyrics=lyrics.data;
});
在这种情况下,我得到未定义的值:
console.log($scope.lyrics.id); // show Undefined
所以,如果你们能提出更好的方法,我将不胜感激。
最佳答案
除了 console.log,你做的是对的。如果您的日志语句在分配完成之前执行,您将获得未定义的值。
另外我不明白你为什么要执行 var result =
你可以简单地做
ApiCall.GetApiCall('v1', 'lyrics', '1').success(function (data) {
$scope.lyrics = data.data;
console.log($scope.lyrics.id);
}).error(fucntion(data){
console.log(data);
});
关于javascript - 在 angularjs 中获取 json 响应对象的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39992034/