我试图从DynamoDB中获取值,然后将该值分配给ng模型以显示该值。但是,数据始终为null。
Dynamodb table
"meta_value": {
"clause_note": "Note: good job!",
"show_clause_note": true,
"shown": true
},
我正在获取条款注释
Controller
$scope.clause_note = null;
$scope.item.remark = null;
$scope.loading = true;
$scope.getSettings = function () {
customPrint.getAllSettings($scope.module).then(function (res) {
if ($scope.module) {
settings.then(function (stt) {
$scope.clause_note = stt['clause_note'];
});
} else {
alert('No module is specified!');
}
}).finally(function () {
if ($scope.item.remark === $scope.clause_note) {
$scope.item.remark = '';
console.log($scope.clause_note);
}
else
{
$scope.clause_note = {show_clause_note: true};
$scope.clause_note = {shown: true};
}
});
};
$scope.getSettings();
控制台日志返回为null。
html
<ng-quill-editor ng-model="item.remark"></ng-quill-editor>
实际上没有足够的信息来回答这个问题。stt
变量的值是多少?如果meta_value
是该对象的属性,则此行:
$scope.clause_note = stt['clause_note'];
应该改为
$scope.clause_note = stt.meta_value.clause_note
如果你能告诉我,我会编辑这个答案:(
但是,代码中还有其他问题,使得维护起来更加困难。
例如,$scope.clause_note
似乎可以是字符串或对象。这使得在代码的其他部分更难处理,因为它的类型并不总是显而易见的
settings
的承诺似乎不知从何而来。也许在你的问题中表明这是一个好主意。此外,这里不使用来自getAllSettings
的响应。这是个错误吗?
也许您应该在发送getAllSettings
请求之前检查$scope.module
是否存在。如果它没有提醒,就返回。这应该会删除promise回调中的任何分支逻辑。