如何从resolve方法内部更新作用域
How to update the scope from inside a resolve method?
我正试图清除在我的聊天系统中发送消息后的输入,但范围不想更新。将其设置在$apply
, $digest
或$timeout
中不起作用,因为消化循环已经在进行中。
函数如下:
$scope.sendMessage = function(chat, newMessage) {
var messageObj = {
by: $scope.uuid,
message: newMessage,
timestamp: Date.now()
}
fbCrud.push('chats/' + chat.$id + '/history', messageObj)
.then(function() {
newMessage = '';
})
.catch(function(err) {
setStatus(false, 'Unable to send message', true);
});
};
这是我的textarea:
<textarea ng-enter="sendMessage(chat, newMessage)" ng-model="newMessage"></textarea>
如何解决这个问题?
在作用域中创建一个新的messageObject:
$scope.msgObject = {};
在你的HTML中,将输入绑定到这个新对象
中的属性<input type="text" ng-model="msgObject.message">
在sendMessage函数中,不要使用parameter,而是使用来自$scope.msgObject
的消息最后在'then'功能清除您的$scope.msgObject.message
。因为绑定,你的html输入字段也会被清除。
在您的then
中,您使用:
.then(function() {
newMessage = '';
})
这里的newMessage
是匿名then
函数中的一个局部变量。如果使用<input ng-bind="message">
$scope.message
)设置为''
。
相关文章:
- 正在更新mongod中两个对象内部的数组
- 如何在更新面板内部调用/触发javascript函数<触发器>标签
- 如何更新按钮内部的文本,每行重复一次
- 从 AngularJS 中的 ngview 内部的视图更新主页
- NodeJS如何更新内部元素
- 控制器内部的scope函数不根据视图中的ng模型更新值
- 用jQuery.html更新span内部html在IE中不起作用
- 如果正在创建或更新项目,请在模型“validate”内部进行区分
- 如何在Mongoose中从多个数组更新数组内部的值
- 自我如何在对象内部更新
- 从 iFrame 内部更新 URL
- AngularJS暂停$watch以进行内部更新
- 从html页面内部更新父变量
- 远程MVC和knockout在内部更新值
- 在指令控制器内部更新作用域
- MVC ajax从内部更新部分结果
- 从另一个控制器内部更新模型
- 如何从resolve方法内部更新作用域
- 无法在函数内部更新全局变量并在函数外部调用它(jQuery)
- 在内部更新$scope.然后