Javascript 如何基于属性的存在向指令添加条件语句?

Javascript 如何基于属性的存在向指令添加条件语句?,javascript,angularjs,Javascript,Angularjs,这是我尝试过的,也是我想要做的: HTML: <update-field name="test" cap></update-field> scope: { name: "@", cap: "@" }, controller: function() { }, link: function(scope, elem, attr, ctrl) { scope.submit = function($event, object)

这是我尝试过的,也是我想要做的:

HTML:

<update-field name="test" cap></update-field>
 scope: {
      name: "@",
      cap: "@"
 },
 controller: function() {
        },
 link: function(scope, elem, attr, ctrl) {
   scope.submit = function($event, object) {
      query.first({
          success: function(object) {
        if (scope.cap) {
           // do stuff

但是如果我在HTML中包含
cap
,则
scope.cap
不会返回
true
(这正是我试图实现的)。执行此操作的正确方法是什么?

链接函数已具有
attr
参数。此
attr
to包含添加到元素的所有属性

所以,在链接函数中,您可以检查

if (attr.cap != null) {
  // Do stuff
}

您可以使用
in
关键字检查属性是否在对象内<如果添加属性
cap
,则code>attr应具有属性
cap
,如果没有,则该属性将不存在

'cap' in attr // <--- true or false
属性中的“cap”//