当前位置: 首页 > 面试题库 >

如何在生成的d3 html中使用angularjs指令?

吴升
2023-03-14
问题内容

我正在d3可视化中尝试使用angularjs 工具提示指令,所以我有类似

var node = svg.selectAll(".node")
    .data(nodes)
    .enter().append("circle")
        .attr("tooltip-append-to-body", true)
        .attr("tooltip", function(d) {
            return d.name;
        })
// ... attributes

但是,工具提示未显示。我需要$compile什么吗?我也尝试过将它包装起来$timeout,但这没有用。


问题答案:

我有一个类似的问题,是的,用解决了$compile。我假设您的d3代码位于自定义指令中。从那里可以添加工具提示属性,删除自定义指令属性,以便$
compile仅运行一次,然后调用$ compile:

    myApp.directive('myNodes', ['$compile', function ($compile) {
    return {
        restrict: 'A',
        link: function(scope, element, attrs) {
            var nodes = [{"name": "foo"}, {"name": "bar"}] 
            var mySvg = d3.select(element[0])
                  .append("svg")
                  .attr("width", 100)
                  .attr("height", 100);

            var node = mySvg.selectAll(".node")
             .data(nodes)
             .enter()
             .append("circle")
             .attr("cx", function(d,i){
                return 20+i*50;
             })
             .attr("cy", 50)
             .attr("r", 10)
             .attr("tooltip-append-to-body", true)
             .attr("tooltip", function(d){
                 return d.name;
             });

            element.removeAttr("my-nodes");
            $compile(element)(scope);
            }
        };
    }]);

$ compile服务可确保使用指令添加的属性编译元素。

这是使用上面的代码的工作小提琴。希望这就是您要寻找的!



 类似资料:
  • 问题内容: 请帮助我,如何使AngularJS编译指令生成的代码? 您甚至可以在这里找到相同的代码,http://jsbin.com/obuqip/4/edit 的HTML Java脚本 问题答案: 这是一个既不使用编译功能也不使用链接功能的版本: 请注意,模板被包装在中,因为模板需要具有一个根元素。(如果没有,它将有两个 根元素。) 需要对HTML进行少许修改以进行插值: 小提琴。

  • 问题内容: 我们的应用程序具有2级导航。我们想使用AngularJS 动态地向提供模板。我正在考虑做一些类似的事情: 我只是不知道该如何填充。我知道primaryNav和secondaryNav绑定到$ routeParams,但是如何在这里访问$ routeParams以便动态提供模板? 问题答案: 我找不到注入和使用该服务的方法(我认为这是一个更好的解决方案),我尝试过这种想法,认为它可能会起

  • 问题内容: 我想问你是否可以帮我这个忙。 我在这里用我的问题创建了一个jsfiddle 。我需要使用ng-model =“ my _ {{$ index}}”方式在ng-repeater中动态生成一些带有ng-model的输入。 在jsfiddle中,您可以看到一切正常,直到我尝试动态生成它为止。 HTML将是: 还有javascript … 你能给我个主意吗? 非常感谢。 问题答案: 它能解决您

  • 问题内容: 我喜欢使用指令制作自定义组件。我检查了很多教程,它使我感到困惑,任何人都可以解释指令的工作原理。我计划制造的组件是 呼喊列表的模板将像这样 问题答案: 这是您的指令,带有一些内联注释: 和模板文件: 现在,您可以在代码中使用它,如下所示: 控制器: 视图: 希望这可以帮助!

  • 问题内容: 我正在尝试使用和从HTML 创建一个(我也曾尝试并且无法使其正常工作)。我尝试在Angular控制器中使用以下代码: 但我收到以下错误: 无法识别的文档结构:{“ _ margin”:null}“。 我的HTML由div中的两个简单表组成。 如果有人知道解决此问题的方法,或者知道从Angular将HTML转换为PDF的另一种方法,请帮助。 非常感谢您的协助! 问题答案: 好的,我知道了

  • 问题内容: 如何使用动态模板创建指令? 这就是我现在所拥有的,它可以正确显示标签。但是,我不确定如何在模板上附加其他HTML。或将2个模板合并为1个。 问题答案: 有类似的需求。做这份工作。(不完全确定这是否是“ THE”方法,仍然可以通过角度进行工作) http://jsbin.com/ebuhuv/7/edit-我的探索测试。 需要注意的一件事(以我的示例为例),我的要求之一是,一旦单击“保存