这是我的代码。
$scope.sendFeedback = function () {
var mobile1 = $scope.mobile;
var feedback1 = $scope.feedback;
var userfeedback = {
mobile: mobile1,
feedback: feedback1
};
var feedbackRef = firebase.database().ref("feedback/");
var newFeedbackRef = feedbackRef.push();
newFeedbackRef.set(userfeedback, function(error) {
if (error) {
alert ('Error while registering feedback.');
} else {
$scope.feedback = '';
alert ('Your feedback is registered.');
}
});
}
调用此功能后,我可以看到警报('您的反馈已注册。');但$ scope.feedback =''没有将特定的textField设置为空。我试过$ scope.feedback = null;还有,但没有运气。
这里有什么问题?
编辑:添加了HTML视图。
<md-input-container class="md-block">
<label>Feedback</label>
<input required="" name="feedback" ng-model="feedback" >
<div ng-messages="projectForm.feedback.$error" role="alert">
<div ng-message-exp="['required']">
This field is required.
</div> </div>
</md-input-container>
答案 0 :(得分:1)
我多次遇到这种问题,并使用以下解决方法解决了这个问题:
angular.element(document.getElementById('doc'))
.scope().$apply( function() {
$scope.feedback=''
)}
为了测试SO的代码片段运行符,我主要使用您自己的代码,制作了这个非常小的工作示例。希望这会有所帮助。
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script>
<script>
var module=angular.module('test',[]).controller('test', function($scope)
{
$scope.click = function() {
$scope.feedback = '';
alert ('Your feedback is registered.');
}
})
</script>
</head>
<body>
<div ng-app="test" ng-controller="test" id='feedback'>
<md-input-container class="md-block">
<label>Feedback</label>
<input required="" name="feedback" ng-model="feedback" >
<div ng-messages="projectForm.feedback.$error" role="alert">
<div ng-message-exp="['required']">
This field is required.
</div> </div>
<button ng-click='click();'>click?</button>
</md-input-container>
</div>
答案 1 :(得分:1)
$scope.feedback = [];
(或)
setTimeout(function () {
$scope.$apply(function () {
$scope.feedback = [];
});
}, 1000);
答案 2 :(得分:0)
您是否设置了ng-app和ng-controller?我在我的机器上测试了你的代码,只要你设置了应用程序和控制器,它就能运行。 你能做一个JSFiddle吗?