我正在尝试从父指令向child指令发送一个对象数组,但我将console.log($ scope。$ eval(attrs.model))视为未定义。
angular.module('tester').directive('gChart',gChart);
function gChart() {
var template = getTemplate;
return {
restrict: 'E',
require: "^Logs",
replace:true,
template: template,
scope:{
model: "="
},
link: function($scope, $element, attrs, LogsCtrl) {
console.log($scope.$eval(attrs.model));
LogsCtrl.show($scope.$eval(attrs.model));
}
};
function getTemplate() {
return'<div id="chart" style="width: 600px; height: 500px;margin: 0px auto;"></div>';
}
}
答案 0 :(得分:1)
在这种情况下,我会使用工厂并在两个指令中注入该工厂。根据角度的编码标准共享应该通过工厂完成。它会让你的生活变得轻松。如果你需要任何帮助,让我知道,但使用工厂在控制器和指令之间共享数据使应用程序更可测试
答案 1 :(得分:0)
您需要发布所有代码供我们理解。此外,您的数据数组应位于$scope.model
,而不是attrs.model
。这是因为您将指令的范围定义为
scope:{
model: "="
},
所以,在你的html中,你应该有类似的东西:
<tester model="YOUR_DATA" ></tester>