Angular:使用ng-if来管理文本字符串的反模式吗?

时间:2016-09-09 22:58:03

标签: angularjs templating angular-template

我有一个Angular模板,它根据布尔范围变量呈现不同的模糊:

<p ng-if="::verify">Blah blah verification</p>
<p ng-if="::!verify">Blah blah contact us</p>

我对Angular相对较新,我仍在努力找出最简洁的方法来维护模板。这种方法是反模式吗?还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

我对角度也相对较新,所以我无法说出它是否是一种反模式。从我迄今使用的资源来看,似乎show和hide比使用ifs更清洁。

我认为这对于你的特殊情况很突出,你实际上有两个标签和表达式将被评估,而评估一个给出两者的结果。所以......

  

还有其他方法吗?

是的,在这种情况下,我会添加一个函数,它将返回不同的字符串的结尾并选择一个标记。例如:

<p>Blah blah {{ctrl.isValid()}}</p>

使用角度控制器代码:

...
self.valid = false;
self.isValid = function() {
    return self.valid ? "verification" : "contact us";
};
...

似乎比if,show或hide(IMHO)更清洁。