问与答 AngularJS-如果检查字符串为空值

ransom · 2020-03-06 13:47:56 · 热度: 108

这是一个简单的示例:

<a ng-if="item.photo == ''" href="#/details/{{item.id}}"><img src="/img.jpg" class="img-responsive"></a>
<a ng-if="item.photo != ''" href="#/details/{{item.id}}"><img ng-src="/{{item.photo}}" class="img-responsive"></a>

我看到即使该值为空,它也始终会生成item.photo != ''条件。 为什么?

猜你喜欢:
共收到 4 条回复
bennie #1 · 2020-03-06 13:47:56

您不需要显式使用诸如<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0/angular.min.js"></script> <div ng-app init="item = {photo: ''}"> <div ng-if="item.photo"> show if photo is not empty</div> <div ng-if="!item.photo"> show if photo is empty</div> <input type=text ng-model="item.photo" placeholder="photo" /> </divitem.photo != ''之类的限定符。像在JavaScript中一样,空字符串将被评估为false。

您的视图也将更加清晰易读。

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0/angular.min.js"></script>
<div ng-app init="item = {photo: ''}">
   <div ng-if="item.photo"> show if photo is not empty</div>
   <div ng-if="!item.photo"> show if photo is empty</div>
  
   <input type=text ng-model="item.photo" placeholder="photo" />
</div

更新以删除Angular中的错误

sorin #2 · 2020-03-06 13:47:57

如果您首先没有在项目上具有照片属性,则您的item.photo可能是undefined,因此是undefined != ''。但是,如果您放置一些代码来显示如何为item提供值,这会有所帮助。

PS:很抱歉将其发布为答案(我宁愿认为这更多是评论),但我的声誉还不够。

orville #3 · 2020-03-06 13:47:59

如果用“空”表示undefined,则它是ng-expressions的解释方式。 然后,您可以使用:

<a ng-if="!item.photo" href="#/details/{{item.id}}"><img src="/img.jpg" class="img-responsive"></a>
barret #4 · 2020-03-06 13:48:00

这是可能发生的情况,如果item.photo的值未定义,则.value将始终显示为true。 如果从逻辑上讲这确实有意义,那么myTextBox不是空字符串(因此该条件成立),因为它是undefined

现在,对于试图在Angular 6中尝试检查input的值是否为空的人们,可以采用这种方法。

可以说这是输入字段-

.value

要检查该字段是否为空,应该使用脚本。

.value

请注意以上答案与该答案之间的细微差别。 我在输入名称myTextBox之后添加了附加属性.value
我不知道上面的答案是否适用于以上版本的Angular,但是对于Angular 6,这是应该如何做。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册