我正在向该函数传递两个插槽。我发送以下xml。
这是请求XML。 .....
"requestId": "amzn1.echo-api.request.[unique-value-here]",
"intent": {
"slots": {
"chapter": "4",
"shloka": "4"
},
.....
然而,当代码运行时,即使他们在那里,我也没有为插槽定义。 这是代码
var intent = this.event.request.intent;
console.log('slots are -->');
console.log(intent.slots);
var shloka = this.event.request.intent.slots.shloka.value;
var chapter = this.event.request.intent.slots.chapter.value;
console.log('chapter:' + chapter + ' shloka:' + shloka);
以下是控制台日志 ...插槽是 - > ...... {章:' 4',shloka:' 4' } ...章:undefined shloka:undefined
我无法弄清楚如何解决这个问题。
答案 0 :(得分:1)
首先,您不必使用value
来访问shloka
和chapter
的值。其次,为什么要使用this.event.request.intent
两次访问它,如果你在变量内部有intent
(第1行 - var intent = this.event.request.intent;
),在这种情况下你可以写:
// Use this
var shloka = intent.slots.shloka;
var chapter = intent.slots.chapter;
// Instead of this
var shloka = this.event.request.intent.slots.shloka.value;
var chapter = this.event.request.intent.slots.chapter.value;
这应该按预期工作:
var intent = this.event.request.intent;
console.log('slots are -->');
console.log(intent.slots);
var shloka = intent.slots.shloka;
var chapter = intent.slots.chapter;
console.log('chapter:' + chapter + ' shloka:' + shloka);