我有一个ng-click
函数,应该更改按钮文本并运行异步函数。
模板
<button ng-click="connect()">{{buttonTextConnect}}</button>
连接()
$scope.connect = function() {
console.log('Try connecting');
$scope.buttonTextConnect = 'Connecting...';
thermProbe.connect().then(
function() {
$scope.connected = true;
},
function() {
$scope.connected = false;
}
);
}
立即显示console.log
。但$scope.buttonTextConnect
不会更新按钮中的文本。
thermProbe.connect()
是一个Angular承诺。
如果我注释掉异步调用thermProbe.connect()
,则按钮文本会按预期更新。
这是一个有效的Ionic Play demo,按预期工作。单击时按钮文本会更改,并且稍后会解析承诺。
为什么异步调用会阻止$scope
更改在模板中更新?