检查是否已传递指令属性

时间:2016-02-19 01:01:40

标签: javascript angularjs

有没有办法可以检查我的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>

1 个答案:

答案 0 :(得分: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
        }
      });    
    }
  }    
});