AngularJS处理模型中缺少的属性

时间:2014-03-07 21:55:42

标签: angularjs

假设我的模型有一些info字段,并且此信息可能具有“prop”属性。

我正在渲染一个div,并希望它具有一个属性值为该属性。

使用<div attr="{{info.prop}}"></div>这很简单。

但是,如果info没有prop或者它具有空值,则会呈现 <div attr></div>

如何阻止将attr添加到div?

以更一般的方式,我如何检查模型并仅在某些条件适用时添加属性?

我想我可以让模型在范围中包含一个特殊函数,并使用<div {{attrGetter()}}"></div><div {{attrGetter(info.prop)}}"></div>并在控制器中使用此逻辑。 但我想知道是否有更好的/其他方法来做到这一点。

1 个答案:

答案 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>