在角度1.6中,向上传递动作(从表示组件到控制器组件),我得到了这个:
聊天(控制器组件)
const Chat = ['messages', function (ms) {
...
this.sendMessage = (userInput) => {
ms.sendMessage(userInput)
.then((res) => {
console.log(res)
})
}
}]
Html模板:
<div class="messages">
<conversation messages="ch.messages" ng-if="ch.messages" ></conversation>
<user-input send="ch.sendMessage(userInput)"></user-input>
</div>
UserInput组件(演示组件):
const UserInput = function () {
...
this.checkAndSend = () => {
this.send(this.input)
this.input = this._clear()
}
}
angular
.module('chatbot-andrea')
.component('userInput', {
bindings: {
send: '&'
},
...
})
答案 0 :(得分:0)
我犯了一个可怕的错误,正如velesin.io解释
&#34;这是因为&#39;&amp;&#39;绑定不是一个真正的回调函数,但是 表达式,标题和描述不起作用 参数,但变量在表达式的范围内可见 上下文&#34;
所以使用,
this.send(this.input)
永远不会工作。而不是你必须使用:
this.send({userInput: this.input})
Codelord.net还解释了in a straightforward way。