我创建了一个自定义指令,它基本上是一个可重用的表单。表单的一部分是错误消息显示,它使用ng-switch
:
<div ng-switch="status">
<span ng-switch-when="Error" class="text-error">Error encountered</span>
<span ng-switch-when="Verifying" class="text-info">Verifying</span>
<span ng-switch-when="Success" class="text-success">Success</span>
<span ng-switch-default> </span>
</div>
在我的指令的控制器中,我定义了一个与服务器执行验证的函数:
$scope.verify = function () {
$scope.status = 'verifying';
socket.emit('verify', $scope.data, function(result) {
$scope.status = result;
});
};
然后这个函数被link
输入框的模糊事件函数调用。
我注意到的是“验证”状态从未出现,但“错误”/“成功”状态工作正常。似乎 AngularJSng-switch
仅在我当前的指令完成处理后才处理该指令。
有什么我做错了吗?有没有办法让我绕过这种行为,以便显示验证状态?