假设我的模型有一些info
字段,并且此信息可能具有“prop”属性。
我正在渲染一个div,并希望它具有一个属性值为该属性。
使用<div attr="{{info.prop}}"></div>
这很简单。
但是,如果info
没有prop
或者它具有空值,则会呈现
<div attr></div>
如何阻止将attr
添加到div?
以更一般的方式,我如何检查模型并仅在某些条件适用时添加属性?
我想我可以让模型在范围中包含一个特殊函数,并使用<div {{attrGetter()}}"></div>
或<div {{attrGetter(info.prop)}}"></div>
并在控制器中使用此逻辑。
但我想知道是否有更好的/其他方法来做到这一点。
答案 0 :(得分:1)
这是我使用指令的地方,在link
函数中你可以访问元素属性:
.directive("myDirective", function() {
return {
restrict: "A",
link: function(scope, elem, attrs) {
if (scope.info.hasOwnProperty("prop"))
attrs["attr"] = scope.info.prop
}
}
});
将此指令抛出到目标元素:
<div my-directive></div>