指令之间的AngularJs-share对象数组

时间:2016-05-11 12:11:36

标签: javascript html angularjs

我正在尝试从父指令向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>';
        }
    }

2 个答案:

答案 0 :(得分:1)

在这种情况下,我会使用工厂并在两个指令中注入该工厂。根据角度的编码标准共享应该通过工厂完成。它会让你的生活变得轻松。如果你需要任何帮助,让我知道,但使用工厂在控制器和指令之间共享数据使应用程序更可测试

答案 1 :(得分:0)

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

scope:{
    model: "="
},

所以,在你的html中,你应该有类似的东西:

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