Javascript 如果为false,则执行ng中的代码
假设我有这样的代码:Javascript 如果为false,则执行ng中的代码,javascript,html,angularjs,angularjs-directive,angular-ng-if,Javascript,Html,Angularjs,Angularjs Directive,Angular Ng If,假设我有这样的代码: <span>Do you like bananas?</span> <input type="radio" ng-model="likeBananas" name="likeBananas" value="yes"> <input type="radio" ng-model="likeBananas" name="likeBananas" value="no"> <div ng-if="likeBananas ===
<span>Do you like bananas?</span>
<input type="radio" ng-model="likeBananas" name="likeBananas" value="yes">
<input type="radio" ng-model="likeBananas" name="likeBananas" value="no">
<div ng-if="likeBananas === 'no'">
<label>Tell us why?</label>
<textarea ng-model="whyNot" ng-required="likeBananas === 'no'"></textarea>
</div>
你喜欢香蕉吗?
告诉我们为什么?
想法是:如果用户不喜欢香蕉,则需要有解释的
。如果用户喜欢香蕉,当然它不是必需的,也不会显示给用户。因为这个字段是动态的,所以我使用了ng required=“比如说,我真的需要它吗?”?也许简单的必需的
可以完成工作?因为,当ng if
为false时,div
的内容不应出现在HTML中。一般问题是-如何使用ng if
s指令从上到下或从下到上在元素内部执行代码?在第一种情况下,如果元素中的ng if
s为false,则不应执行该元素中的代码;在上述情况下,当div
不存在且可能不需要时,不计算ng required
。我希望您能帮助我解决我的疑问-提前谢谢您。不,您应该简单地将ng required=true
用于ng if
指令(在您的情况下),因为该指令行为是在条件切换时从DOM中删除/添加其中的元素
因此,如果likebanas!='没有“
,元素
<label>Tell us why?</label>
<textarea ng-model="whyNot" ng-required="likeBananas === 'no'"></textarea>
告诉我们为什么?
未包含在DOM中,因此未编译ng require=true
。请在Plunk中查看:
通过制作表单
元素,您可以通过执行以下操作检查其有效性:
Is the form valid? {{banana.$valid}}
你为什么不试试呢?将其更改为required
,并在likebanas==“no”
为true时查看您的表单是否为$valid。(将其放入html:{{myForm.$valid}}')。要测试您的其他假设,请在调用函数的文本区域中添加一个
ng init`,该函数使用console.log将消息记录到控制台。确保测试的likebanas
不是“否”。