gpt4 book ai didi

javascript - 为什么 $scope 应用于某些表达式而不应用于其他表达式?

转载 作者:行者123 更新时间:2023-11-30 17:29:14 24 4
gpt4 key购买 nike

我在 Controller 中有这个:

$scope.address = new Address();
$scope.hasAddress = $scope.address.street !== undefined && $scope.address.street.length > 0;

还有这个标记:

<p>{{address.street !== undefined && address.street.length > 0}}</p>
<p>{{hasAddress}}</p>

然后这个,通过一些间接的包含:

<input type="text" ... ng-model="address.street" required>

当输入第一次出现时,街道是未定义的,所以呈现的 html 说:

<p>false</p><p>false</p>

如预期。但是当我在输入中输入字符时,html 呈现为:

<p>true</p><p>false</p>

为什么 hasAddress 变量不更新?它由地址对象间接更改。这是我使用 $scope.$apply() 的情况吗? (哦,不,这是一个我不知道自己到底在做什么的新事物)。

最佳答案

那是因为您的 JS 中没有任何内容告诉它要更新。

添加到您的输入:ng-change="updateVar()",然后在您的 JavaScript 中:

$scope.updateVar = function() {
$scope.hasAddress = $scope.address.street !== undefined && $scope.address.street.length > 0;
}

关于javascript - 为什么 $scope 应用于某些表达式而不应用于其他表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23531027/

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