Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript闭包与否(使用angularjs指令和d3js时)_Javascript_Angularjs_D3.js - Fatal编程技术网

javascript闭包与否(使用angularjs指令和d3js时)

javascript闭包与否(使用angularjs指令和d3js时),javascript,angularjs,d3.js,Javascript,Angularjs,D3.js,受这个例子的启发,我做了一个简单的指令,单击后将更改父范围上的值 当我点击圆圈时,html页面上的{{{value}}不会改变 这难道不是正确的吗,作为javascript闭包规则,在(“单击”,function()…,scope.v中的scope应该与link:function(scope…中的范围相同,因为您正在“角度世界”之外更新您的范围,并且希望angular运行一个摘要循环 d3.select(element[0]).append("svg").attr({width:300,heig

受这个例子的启发,我做了一个简单的指令,单击后将更改父范围上的值

当我点击圆圈时,html页面上的
{{{value}}
不会改变

这难道不是正确的吗,作为javascript闭包规则,在(“单击”,function()…,
scope.v
中的
scope
应该与
link:function(scope…

中的
范围相同,因为您正在“角度世界”之外更新您的范围,并且希望angular运行一个摘要循环

d3.select(element[0]).append("svg").attr({width:300,height:300})
      .append("circle").attr({cx:100,cy:100,r:20})
      .on("click",function(){scope.$apply(function(){scope.v="clicked inside d3";})});
.

您需要添加,因为您正在“角度世界”之外更新您的范围,并且希望angular运行摘要循环

d3.select(element[0]).append("svg").attr({width:300,height:300})
      .append("circle").attr({cx:100,cy:100,r:20})
      .on("click",function(){scope.$apply(function(){scope.v="clicked inside d3";})});

d3.select(element[0]).append("svg").attr({width:300,height:300})
      .append("circle").attr({cx:100,cy:100,r:20})
      .on("click",function(){scope.$apply(function(){scope.v="clicked inside d3";})});