2016-02-19 4 views
0

Есть ли способ проверить, действительно ли моя директива Angular 1 передала объявленную, но не инициализированную переменную, или если она не была передана атрибутом, который я ожидаю?Проверьте, был ли передан атрибут директивы

Сказал с другими словами:

$scope.var; // <-- declared but not initialized, value is "undefined" 

<div my-directive foo-bar="var"></div> 

Как я могу узнать из метода link в моей директиве, что foo-bar на самом деле был переменный прошел? (Вместо <div my-directive></div>)

ответ

0

Используйте часы в директиве

app.directive('myDirective', function() { 
    return { 
    scope: {fooBar: '='}, 
    link: function(scope, elem, attrs) { 
     scope.$watch('fooBar', function(newVal, oldVal) { 
     if (newVal !== oldVal) { 
      // we have a new scope value 
     } 
     });  
    } 
    }  
}); 
+0

Это скажет мне, если значение 'var' изменилось, проблема заключается в том, что' var' будет неопределенным (если он будет принят), и выиграл» т). Поэтому я должен знать, было ли это принято. – alexandernst

+0

Будет ли переменная определена при запуске контроллера или будет установлена ​​асинхронно в контроллере? Какую проблему более высокого уровня вы пытаетесь решить? – charlietfl

+0

Также вы просто хотите проверить, не является ли атрибут пустым или даже существует? – charlietfl

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