使用ng-show确定模型/范围是否包含内容

时间:2013-11-13 15:02:59

标签: angularjs

如果该标签的内容不存在,我正在尝试使用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'的话来说

3 个答案:

答案 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放在模板中,指令调用工作正常,在指令调用中加上更少的代码。谢谢你们!

相关问题