私はこのコードを持っている($スコープ$適用されます。):この領域では
var meme = angular.module('testApp');
meme.controller('awsCtrl', ['$scope', function ($scope) {
$scope.myDate = 'Hello there!';
$scope.testSend1Response = '';
//-----
//--set up configuration for AWS
//-----
var credentials = new AWS.Credentials('AKIAI4UYCXVJ2FJICSHA', 'Sj42vmNla34trodyrvIcVIkbo+mczVo5QMIlfVHg');
AWS.config.region = "ap-southeast-2";
AWS.config.credentials = credentials;
//-------------------------------------------------------------------------
//--send message
//-------------------------------------------------------------------------
$scope.testSend1 = function() {
var sqs = new AWS.SQS({apiVersion: '2012-11-05'});
var params = {
DelaySeconds: 10,
MessageAttributes: {
"Title": {
DataType: "String",
StringValue: "The Whistler"
},
"Author": {
DataType: "String",
StringValue: "John Grisham"
},
"WeeksOn": {
DataType: "Number",
StringValue: "6"
}
},
MessageBody: "Information about current NY Times fiction bestseller for week of 12/11/2016.",
QueueUrl: 'https://sqs.ap-southeast-2.amazonaws.com/448283262740/reporting'
};
sqs.sendMessage(params, function(err, data) {
if (err) {
console.log("Error", err);
} else {
$scope.testSend1Response = ' Success. MessageId: ' + data.MessageId; // << THE PROBLEM IS HERE
console.log("Success", $scope.testSend1Response);
console.log('Success2 ' + data.MessageId);
}
});
}
}]);
:
sqs.sendMessage(params, function(err, data) {
if (err) {
console.log("Error", err);
} else {
$scope.testSend1Response = ' Success. MessageId: ' + data.MessageId; // << THE PROBLEM IS HERE
console.log("Success", $scope.testSend1Response);
console.log('Success2 ' + data.MessageId);
}
});
を私が使用していますメッセージを送信し、メッセージが送信されたことを記録し、スコープ変数testSend1Response
をMessageIdに割り当てるにはAWS sqs。
:
<button ng-click="testSend1()"> Send data </button>
<span> Response: {{testSend1Response}}</span>
ボタンIをクリックすると、応答は、私はそれが印刷され得ることを期待していますHTMLで印刷されませんが、コンソールログに私ができます例えば1aacc
のMessageIdを見てください.2回目のボタンをクリックすると、1aacc
がHTML形式で表示されますが、コンソールログには2bbdd
のMessageIdが表示されるので、$scope.testSend1Response
がログの後ろに表示されています現在のメッセージIDの代わりに前のMessageId
アウトジム・ホスキンスことで、この素晴らしいポストの詳細は:
その問題を解決する方法はとても似
$apply
関数内でその変数をラップすることです http://jimhoskins.com/2012/ 12/17/angularjs-and-apply.html –