Javascript AngularJs在指令之间共享对象数组

Javascript AngularJs在指令之间共享对象数组,javascript,html,angularjs,Javascript,Html,Angularjs,我试图将一个对象数组从父指令发送到子指令,但我得到的console.log($scope.$eval(attrs.model))是未定义的 angular.module('tester').directive('gChart',gChart); function gChart() { var template = getTemplate; return { restrict: 'E', require: "

我试图将一个对象数组从父指令发送到子指令,但我得到的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>';
        }
    }
angular.module('tester')。指令('gChart',gChart);
函数gChart(){
var-template=getTemplate;
返回{
限制:'E',
需要“^Logs”,
替换:正确,
模板:模板,
范围:{
型号:“=”
},
链接:函数($scope、$element、attrs、LogsCtrl){
log($scope.$eval(attrs.model));
LogsCtrl.show($scope.$eval(attrs.model));
}
};
函数getTemplate(){
返回“”;
}
}

您需要发布所有代码,以便我们理解。此外,您的数据数组应该在
$scope.model
中,而不是在
attrs.model
中。这是因为您将指令的范围定义为

scope:{
    model: "="
},
因此,在html中,您应该有如下内容:

<tester model="YOUR_DATA" ></tester>


在这种情况下,我将使用factory并将该factory注入两个指令中。应通过工厂按照角度编码标准进行共享。它会让你的生活变得轻松。如果您需要这方面的帮助,请告诉我,但请使用factory在控制器和指令之间共享数据,使应用程序更易于测试

我使用服务共享该数据,您是否有链接可供我参考,以查看标记为factory的最佳实践?