2015-12-16 2 views
3

Это то, что я пытался и то, что я пытаюсь сделать:Как добавить условный оператор в директиву на основе наличия атрибута?

HTML:

<update-field name="test" cap></update-field> 

JS:

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 

Но scope.cap не возвращающие true если Я включаю cap в HTML (это то, что я пытаюсь выполнить). Каков правильный способ сделать это?

ответ

5

Функция связи уже имеет параметр attr.Это attr содержит все атрибуты, добавленные в элемент.

Таким образом, внутри функции связи, вы можете проверить

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

Вы можете проверить, если это свойство находится в пределах объекта, используя ключевое слово in. attr должно иметь свойство cap, если вы добавите атрибут cap, а если нет, то этого свойства не будет.

'cap' in attr // <--- true or false 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/in

Смежные вопросы