TypeError:不能在'中使用'运营商搜索' ch'在嗨

时间:2017-06-06 11:36:12

标签: javascript angularjs

在角度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: '&'
        },
        ...
    })

1 个答案:

答案 0 :(得分:0)

我犯了一个可怕的错误,正如velesin.io解释

  

&#34;这是因为&#39;&amp;&#39;绑定不是一个真正的回调函数,但是   表达式,标题和描述不起作用   参数,但变量在表达式的范围内可见   上下文&#34;

所以使用,

this.send(this.input)

永远不会工作。而不是你必须使用:

this.send({userInput: this.input})

Codelord.net还解释了in a straightforward way