Javascript ReferenceError:未定义变量
我有一个angularjs代码,其中变量Javascript ReferenceError:未定义变量,javascript,angularjs,Javascript,Angularjs,我有一个angularjs代码,其中变量dataKey在watcher中给定一个值。当我在console中记录该值时,它会显示出来(对于ex.4),但在下面的语句中,它给出了错误:ReferenceError:datakey未定义。这怎么可能 下面是代码片段 myApp.directive('circlepackingChart', function($window) { return { restrict: 'EA', link: function(s
dataKey
在watcher中给定一个值。当我在console中记录该值时,它会显示出来(对于ex.4),但在下面的语句中,它给出了错误:ReferenceError:datakey未定义
。这怎么可能
下面是代码片段
myApp.directive('circlepackingChart', function($window) {
return {
restrict: 'EA',
link: function(scope, elem, attrs) {
var dataFile = scope.dataFile;
var dataKey = attrs.expKey|| false;
var d3 = $window.d3;
var div = elem[0];
var width = div.offsetWidth;
var height = width / 2;
scope.$watch(function() {
return attrs.expKey;
}, function(value) {
dataKey = value || false;
console.log(datakey);
if (datakey) {
drawCirclePacking();
}
});
drawCirclePacking = function(){
/*some code*/
}
}
}
});
JavaScript是一种区分大小写的语言。这意味着语言关键字、变量、函数名和任何其他标识符必须始终以字母大小写一致
没有定义datakey,因为您定义的datakey是一种区分大小写的语言。这意味着语言关键字、变量、函数名和任何其他标识符必须始终以字母大小写一致
未定义datakey,因为您定义了datakey
$scope。watch
将密钥导出到范围内定义的变量
因此,在您的例子中,angular正在查找尚未定义的$scope.dataKey
为了使其工作,请将变量添加到范围中:
scope.dataFile = scope.dataFile;
scope.dataKey = attrs.expKey|| false;
$scope.watch
导出作用域内定义的变量的键
因此,在您的例子中,angular正在查找尚未定义的$scope.dataKey
为了使其工作,请将变量添加到范围中:
scope.dataFile = scope.dataFile;
scope.dataKey = attrs.expKey|| false;