离子平台ng-show仅在

时间:2016-01-13 17:56:02

标签: javascript css angularjs ionic

我有一个注册页面,当填写注册表单并按下注册按钮时,它会从后端获得响应。

如果用户名存在于数据库中,则响应返回false,然后从那里我将$ scope变量($ scope.signedUp)更改为true,这应该只显示此现有错误消息:

<div class="padding assertive" ng-show="signedUp">
   <i class="icon ion-minus-circled"></i>
   Woops! Looks like that user already exists, try a different username.
</div>

这是注册控制器中的当前范围功能:

$scope.signup = function(){
   User.signup($scope.credentials).then(function(res){
      if(res === false){
         console.log('res is: ', res);
         $scope.signedUp = true;
         console.log('$scope.signedUp ',$scope.signedUp);
      }
   });
};

第一次填写信息并单击注册时,控制台日志会记录下来:

app.js:47 res is:  false 
app.js:49 $scope.signedUp  true

然而,错误没有显示,但奇怪的是,当我再次点击它时,它确实显示,但控制台日志中没有任何内容不同,这是否是离子的错误?我在这里注意到了类似的帖子:

ng-hide/ng-show within an ng-hide/ng-show not working properly in **chrome** on first trigger, second time it reflects just fine

但是看起来这张海报在没有显示的情况下解决了,如果可能的话,我不想这样做,谢谢。

1 个答案:

答案 0 :(得分:1)

如果更新视图中可见范围内的变量,请运行以下行:

$scope.$apply();

此刷新输出,视图将更新。 但是,如果没有看到完整的代码,很难说。