作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个关于太阳系行星列表的 intent 。
{
"intent": "PlanetIntent",
"slots": [
{
"name": "Planet",
"type": "LIST_OF_PLANETS"
}
]
},
我正在尝试进行设置,以便当用户命名一个行星时,我的代码只需将该行星的名称返回给他们。如果他们说一个行星不在列表中,那么它将返回一个错误(或者进入未处理状态,这是我最初假设会发生的情况)。
但无论我尝试什么,从最基本的代码到最复杂的代码,我的代码总是返回所说的任何单词,而不仅仅是相关的槽值。
所以两者都不是
'PlanetIntent': function () {
var selection = this.event.request.intent.slots.Planet.value;
this.response.speak(selection);
this.emit(':responseReady');
}
也不是这个
'PlanetIntent': function () {
var selection = '';
if ( !this.event.request.intent.slots.Planet ||
this.event.request.intent.slots.Planet.value == '') {
this.emitWithState('AMAZON.HelpIntent');
} else {
selection = this.event.request.intent.slots.Planet.value;
this.response.speak(selection);
this.emit(':responseReady');
}
},
似乎阻止了随机值的通过。如果你说火星,它就会返回火星,如果你说萝卜,它就会返回萝卜。有任何想法吗。我只是想限制它只返回我的行星列表中的响应!
最佳答案
您提供的插槽列表只是提示,而不是过滤器或限制。您肯定需要在代码中过滤列表。
由于您只是在寻找太阳系中行星的名称,所以这应该不会太困难:7-9 个值取决于您是否想要计算冥王星和/或包括地球,如果您想计算则有点困难开始包括它们的卫星,如果您包括其他恒星的已知行星,则相当具有挑战性:-)
关于javascript - slot.value 返回所有话语,而不仅仅是来自 slot 的话语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47665499/
我知道这不是 Stack Overflow 的正确问题类型(请原谅我),但我花了几个小时试图让 Discourse 在我的机器上运行。它以前可以工作,但我升级到 Ruby 2.0 和 Rails 4,
我是一名优秀的程序员,十分优秀!