-1

我在页面中有一个小部件,它显示一些数据的谷歌图表,带有几个过滤器来过滤图表数据,并带有一个打印图标来打印它。

我想添加一个按钮来打开同一个小部件,其中图表、过滤器和打印功能在具有更大屏幕视图的模式中工作。因为页面中的小部件很小。

我尝试添加一个按钮,并在链接功能中为该按钮添加了一个功能以element.html()在模式中打开,html 工作但问题是过滤器和打印不起作用。

有什么问题element.html()?我已经厌倦了使用 $compile 但它让我陷入了许多错误。我可以用什么?

app.directive("widget", function ($rootScope) {
        return {
                restrict: "EA",
                scope: { 
                        title: '=',
                        options: '='
                },
                transclude: true,
                templateUrl: "widget.html",
                link: function(scope, element, attrs, ctrl, transclude) {
                    scope.print = function() {....}
                    scope.filterChart = function() {....}

                    scope.expand = function() {
                      $rootScope.openModal("expand Modal", element.html(), {});      
                    } 
                }
        }

请注意 $rootScope.openModal 只是一个使用 $modal 服务的包装服务,带有标题和正文

4

1 回答 1

0

我认为我们在设计方面存在一些问题。

整理一下:

您有一些逻辑(在您的情况下“带有图表、过滤器和打印功能的小部件”)

这个逻辑应该在directiveor component(1.5+) 中实现。

所以指令名称widget就像你做的那样。

您可以在主页(到目前为止所做的)或作为模式的一部分实施此指令。模态只是您的widget. 所以创建新的空模态,放在里面<widget title="xx" options=someOptions></widget>就可以了


由于您具有隔离范围指令,因此我认为使其正常工作没有任何问题。

于 2017-06-18T15:10:51.783 回答