Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查是否传递了指令属性_Javascript_Angularjs - Fatal编程技术网

Javascript 检查是否传递了指令属性

Javascript 检查是否传递了指令属性,javascript,angularjs,Javascript,Angularjs,有没有办法检查Angular 1指令是否实际传递了一个声明但未初始化的变量,或者它是否没有传递我期望的属性 换言之: $scope.var; // <-- declared but not initialized, value is "undefined" <div my-directive foo-bar="var"></div> $scope.var;// 在指令中使用手表 app.directive('myDirective', function() {

有没有办法检查Angular 1指令是否实际传递了一个声明但未初始化的变量,或者它是否没有传递我期望的属性

换言之:

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

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

$scope.var;// 在指令中使用手表

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
        }
      });    
    }
  }    
});

这将告诉我
var
的值是否更改,问题是
var
将未定义(如果通过)且不会更改。所以我必须知道它是否被传递。变量是在控制器运行时定义的,还是在控制器中异步设置的?您试图解决什么更高级别的问题?您只是想检查属性是否为空或是否存在?变量将在控制器运行时定义,在开始时。没有更高的问题。我必须从指令中向这个变量推送一个值,并且我需要检查它是否存在(因为如果它不存在,当我尝试向它推送一个值时,代码就会中断)。那么为什么watch不为您这样做呢?或者在运行代码之前检查它是否已定义。这个问题一点也不清楚