angular.js为什么双向绑定要点一下才生效

发布于 2022-09-12 04:04:18 字数 617 浏览 22 评论 0

showCaptcha设置了true为什么要在页面上点击一下才能显示,和vue双向绑定有区别吗?用的1.2

 <div class="ipt_con" ng-show="login.showCaptcha"></div>
    $scope.login = {
        showCaptcha: false,
    }
    $scope.connect = function () {
        Service.login(phone, $scope.login.password).then(function (data) {
            $scope.logining = false;
            if (data.code == 0) {
                ...
            } else {
                $scope.login.showCaptcha = true;//这里置为了true为什么div需要点击才能显示,
                console.log( $scope.login.showCaptcha)
            }
        })
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

欲拥i 2022-09-19 04:04:18

Angularjs里面的脏检查机制在处理异步流的时候可能无法监测,这个时候使用$scope.$apply();可以强制检测,而关于点一下就可以,是因为angularjs监听了所有的事件,包括xmlHttpRequest的事件,并且在事件里面调用了$scope.$apply(),所以点一下其实也是调用了$scope.$apply()

你如我软肋 2022-09-19 04:04:18
$scope.login.showCaptcha = true;
$scope.$apply(); // 加这句

试一下。

傲影 2022-09-19 04:04:18

主要是因为Angularjs脏治检测没有检查到,可以使用$scope.$apply(),但是不推荐使用这个,因为$apply是从根组件向下执行进行脏值检测。推荐使用$scope.$digest(),$digest是从当前组件向下进行脏治检测。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文