我的指示如下:
angular.module('app')
.directive('chart', function () {
return {
template: '<div class="chart"></div>',
restrict: 'E',
replace: 'true',
scope: {
data: '='
},
link: function (scope, element, attrs) {
console.log(scope);
console.log(scope.data);
}
};});
并从视图中的控制器传递一个数组。
<chart data="array"></chart>
控制台输出如下所示:
Scope {...}
$id: "006"
$parent: Child
$root: Scope
...
data: Array[1]
0: 10300
length: 1
__proto__: Array[0]
this: Scope
__proto__: Object
和
[]
当在控制台中显示范围对象时,它具有长度为1且条目为“10300”的“data”属性,但是当打印scope.data时,它只是一个空数组'[]'。
为什么呢?我很困惑:))
答案 0 :(得分:0)
问题是数组在控制器中初始化为[],然后通过$ watch调用的函数填充。由于某种原因,两个控制台输出似乎打印控制器的不同状态。解决方案是在控制器中调用一次函数,以便立即使用值初始化数组。