我在控制器中有这个:
$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()? (哦,不,我不知道我在做什么的新事物。)
答案 0 :(得分:2)
那是因为你的JS中没有任何内容告诉它更新。
添加到您的输入:ng-change="updateVar()"
,然后在您的JavaScript中:
$scope.updateVar = function() {
$scope.hasAddress = $scope.address.street !== undefined && $scope.address.street.length > 0;
}