如果该标签的内容不存在,我正在尝试使用ng-show来显示/隐藏标签。因此,例如,如果我将电话号码输入到模型中,则“电话:”标签将显示以下实际数字。看起来,ng-show正在评估范围/模型,而不是基于内容/无内容的真/假...它似乎只是将其评估为假。如何编写它来评估内容,而不是布尔值?
<input type="text" ng-model="data.product.user.phone" />
<div ng-show="data.product.user.phone">
<div>Phone:{{data.product.user.phone}}</div>
</div>
我对fiddlin非常不好'所以请原谅这个蹩脚的小提琴,这根本不起作用。 http://jsfiddle.net/xVZHL/2/
更新:所以小提琴有效。但是我的源代码没有。唯一的区别是我们在后端/其他地方生成并保存模型,因此它不是在主页面上创建和控制的,但它只是不起作用......我不知道如何在小提琴中显示它。这是我的实时代码不起作用。
<field ng-show="data.product.phone" for="phone" model="data.product.phone" placeholder="Phone" type="field-view"> </field>
field是一个指令,它具有for,models和placeholder属性,它将注入到模板/指令中。 data.product.phone,出于这个例子的目的,肯定有内容,但是没有出现,即使它应该,因为用angular content ='truthy'的话来说
答案 0 :(得分:1)
与所有HTML属性一样,您需要=
中的ng-show
:
<div ng-show="data.product.user.phone">
纠正小提琴,它有效:http://jsfiddle.net/xVZHL/2/
答案 1 :(得分:0)
字段代码未正确关闭
<field ng-show="data.product.phone" for="phone" model="data.product.phone" placeholder="Phone" type="field-view" </field>
应该是:
<field ng-show="data.product.phone" for="phone" model="data.product.phone" placeholder="Phone" type="field-view"> </field>
答案 2 :(得分:0)
UPDATE(ANSWERED):: http://github.com/angular/angular.js/issues/2500 http://groups.google.com/forum/#!msg/angular/FqvC0ciG08w/k7KkyJu7zNoJ通过更多的谷歌搜索,我发现一个带有隔离范围的指令,它将它作为隔离范围进行评估,因为我的范围已经是data.product.phone,它正在data.product.phone的范围内查看data.product.phone,它不存在,所以它在齿轮中抛出一把扳手。将ngshow放在模板中,指令调用工作正常,在指令调用中加上更少的代码。谢谢你们!