为什么我得到“字符串不是函数”?

时间:2015-01-16 16:55:11

标签: angularjs

我试图在我的收件箱上做回复,我认为它就像发送邮件一样简单。我将电子邮件放入参数而不是$scope.messageTo$scope.messageFrom

有谁知道我的代码中的错误在哪里?我不知道导致错误的原因"字符串不是函数"而且它没有给我任何变量名。

// Reply to message
// Console error in browser: TypeError: string is not a function
$scope.reply = function () {
    var msg = $scope.reply;
    console.log('Replying...');
    $scope.message = {
        read: false,
        sender: {
            id: $scope.user.user._id,
            name: $scope.user.user.user.first + " " + $scope.user.user.user.last,
            user: $scope.user.user.user.user
        },
        message: msg,
    };
    Inbox.sendNewMessage($scope.message, 'My Name', 'myemail@gmail.com', 'myemail@gmail.com');
};

更新:我认为这与调用$ scope.reply函数本身有关。如果我删除$ scope.reply中的所有代码并添加一个简单的console.log('回复');它会给我同样的错误。这是触发回复功能的代码:

<button data-dismiss="modal" data-toggle="modal" href="#direct-messages" ng-click="reply();">Send Reply</button>

这是我的ng-model =&#34;回复&#34;

<textarea Placeholder="Write a reply..." ng-model="reply"></textarea>

1 个答案:

答案 0 :(得分:1)

替换它:

Inbox.sendNewMessage($scope.message, 'My Name', 'myemail@gmail.com', 'myemail@gmail.com');

有了这个:

Inbox.sendNewMessage($scope.message.message, 'My Name', 'myemail@gmail.com', 'myemail@gmail.com');

并为变量使用另一个名称,因为它与函数名称相同:

var msg = $scope.replyMsg;