각도 컨트롤러에 객체 배열이 있습니다.각도 배열에 객체 배열 전달하기
[{
label: 'label1',
data: [{
type: TimelineChart.TYPE.POINT,
at: new Date([2015, 1, 1])
}, {
type: TimelineChart.TYPE.POINT,
at: new Date([2015, 2, 1])
}]
}, {
label: 'label2',
data: [{
type: TimelineChart.TYPE.POINT,
at: new Date([2015, 1, 11])
}, {
type: TimelineChart.TYPE.POINT,
at: new Date([2015, 1, 15])
}]
}];
모든 개체에는 Date
필드가 있습니다. 이 객체 배열을 내 지시문에 어떻게 전달할 수 있습니까?
<div id= "chart" my-directive my-data="data"></div>
$scope: {
myData: '='
},
link: function($scope, $element, $attrs) {
function init() {
var data = $scope.myData;
var timeline = new TimelineChart($element[0], data);
}
$attrs.$observe("myData", init);
}
그러나, 그것은 작동하지 않았다. 나는 undefined
을 얻는다.
my-data="{{ data }}"
및 JSON.parse($attrs.myData)
과 같은 속성으로 전달하는 경우 Date
필드로 인해 작동하지 않습니다.
사용 $ 관찰 또는 더 나은 $ 시계 인수가 새로운 값이 정의되어 있는지 확인합니다. 또는 컨트롤러 또는 서비스에서 약속을 지킵시다. – charlietfl
컨트롤러에서 잘 정의되어 있는지 확인할 수는 있지만, 어떤 이유로 든 내 지시문에서 '정의되지 않음'으로 표시됩니다. @charlietfl 또한, 이미'$ observe '를 사용하고 있습니다. – Tacocat
그렇지만'$ observe'는 첫 번째 값으로 시작할 수 있습니다. 만약'$ http'를 사용하여 데이터를 생성하면 정의되지 않습니다. 인수를 사용하십시오. 또는 ... 라우팅을 사용하고 컨트롤러와 지시어가 실행되기 전에 모든 것이 준비되었는지 확인하십시오. – charlietfl