Javascript 检查是否传递了指令属性
有没有办法检查Angular 1指令是否实际传递了一个声明但未初始化的变量,或者它是否没有传递我期望的属性 换言之: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() {
$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不为您这样做呢?或者在运行代码之前检查它是否已定义。这个问题一点也不清楚