当ng-if为0时的角度问题

时间:2017-01-23 19:42:26

标签: javascript angularjs angular-ng-if

Prisoner无法正常工作时,我遇到了问题。

以下是plunker的链接:http://plnkr.co/edit/dILXSIHHzvuv1nhbxdga?p=info

在更改选择时,我使用模型值显示特定文本框。

ng-if="expression value is 0"

输入字段

<select ng-model="location.locationSchedule.scheduleType" 
    ng-options="schedule.id as schedule.name for schedule in scheduleTypes track by schedule.id">
   <option value="">Choose a Schedule Type</option>
</select>    

如果<input ng-model="location.locationSchedule.frequency" placeholder="Enter Week No." ng-if="location.locationSchedule.scheduleType == 0"/> <input ng-model="location.locationSchedule.frequency" placeholder="Enter Week No." ng-if="location.locationSchedule.scheduleType == 1"/> 显示特定文本框,但不显示0

3 个答案:

答案 0 :(得分:1)

这是因为父母ngIf

替换

ng-if="location.locationSchedule.scheduleType != ''"

ng-if="location.locationSchedule.scheduleType !== ''"

或更合适的任何内容(cf Implied string comparison, 0='', but 1='1'

答案 1 :(得分:1)

更改

ng-if="location.locationSchedule.scheduleType != ''"

ng-if="location.locationSchedule.scheduleType !== ''"

beacause 0 == '',两者都是假的,但它们的类型不一样。

答案 2 :(得分:1)

不确定为什么每个人都在比较scheduleType !== '' 现在我明白为什么,为了清楚起见,请在你的问题中加入div html。

对于比较0的问题,您可以通过严格比较来实现,包括!== ''=== 0

<div class="form-group days-list" ng-if="location.locationSchedule.scheduleType !== ''">
    <input ng-model="location.locationSchedule.frequency" 
        placeholder="Enter Week No." 
        ng-if="location.locationSchedule.scheduleType === 0"/>
    <input ng-model="location.locationSchedule.frequency" 
        placeholder="Enter Week No." 
        ng-if="location.locationSchedule.scheduleType === 1"/>

http://plnkr.co/edit/JWBz4QlhLDHrNiMo36zI?p=preview