我找不到从angular-nvd3-directives函数中检索值的方法,我尝试了所有内容,使用$emit
,$broadcast
,$scope.varName
。
我在控制台中有正确的值printend,但我无法在模板中访问它。
我希望有人可以帮助我,这里是代码
在控制器中:
$scope.keyName="start"; // this works
$scope.$on("keyName", function(event, mass){
$scope.keyName = mass; //correctly assigned as printed in console
console.log( $scope.keyName);
console.log(event.currentScope); // here I find everything inside the scope
// I'm successuffly using elsewhere in the code
});
$scope.toolTipContentFunction = function(){
return function(key, x, y, e, graph) {
$scope.$broadcast("keyName", key);//this correctly broadcast (or emit) the value
return 'Super New Tooltip' +
'<h1>' + key + '</h1>' +
'<p>' + y + ' at ' + x + '</p>'
}
}
这是HTML:
<div>
<!-- {{exampleData}} -->
<nvd3-pie-chart
data="exampleData"
id="colorExample"
width="550"
height="350"
x="xFunction()"
y="yFunction()"
toolTips="true"
objectequality="false"
tooltipcontent="toolTipContentFunction()">
{{keyName}}
<svg height="250"></svg>
</nvd3-pie-chart>
</div>
exampleData被渲染,keyName不是。
任何帮助将不胜感激。
答案 0 :(得分:1)
好的,我找到了。我是初学者。
我必须将更改应用于变量,如:
$scope.$apply(function(){
$scope.keyName = mass;
});
所以现在的功能是:
$scope.$on("keyName", function(event, mass){
$scope.$apply(function(){
$scope.keyName = mass;
});
});
以下是有启发性的文章:http://jimhoskins.com/2012/12/17/angularjs-and-apply.html
答案 1 :(得分:0)
您可以将{{keyName}}
放在nvd3-pie-chart
之外。它没有任何差异。