gpt4 book ai didi

javascript - 在 $watch 回调中使用 $scope 有意义吗?

转载 作者:行者123 更新时间:2023-11-28 19:52:03 24 4
gpt4 key购买 nike

我使用 Semantic-UI 中的弹出组件在我的网站上。

此弹出窗口用于显示来自服务器的错误,因此大多数时候它是隐藏的。此弹出窗口附加到我使用 ng-show 管理的 div。我需要将弹出组件初始化为观察程序(当显示我的 div 时),因为只有渲染其附加元素时,我的弹出组件才能计算其位置。

在进行一些测试时,我注意到来自 $watch 回调的 $scope 修改并未应用:

$scope.$watch('shown', function () {
//console.log('The click is detected')
jQuery('#smthg').one('click', function () {
console.log('I come here')
$scope.shownBis = false //
}) //*/
})

没有影响:

    <p ng-show="shownBis">This should be disappear</p>

( a demo )

我对 Angular 还很陌生,不明白这种行为、发生了什么以及为什么 Angular 的哲学不允许这样做?

最佳答案

尝试ng-click相反:

$scope.smthg = function () {
$scope.shownBis = false;
};

您的 HTML:

<p ng-show="shown" ng-click="smthg()">Then click here</p>

DEMO

While making some tests I notice that modification on the $scope from a $watch callback arn't applied

顺便说一句,您的代码在 $watch 内的 .one() 也存在问题,因为只要显示,它就会附加更多事件处理程序更改并且不调用该函数

关于javascript - 在 $watch 回调中使用 $scope 有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23270708/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com