-1
我采用了棱角分明1.2和伪指令中定义的函数:调用指令内定义的函数
.directive(
'Derp',
function() {
return {
restrict: 'C',
link: function(scope, element, attrs) {
scope.$parent.sum = function() {
//something
}
})
}
})
我打电话从我的主控制器,像这样的功能:
$scope.sum();
但我发现了这个错误在浏览器控制台:
TypeError: $scope.sum is not a function
我是不是得到什么了吗?
您定义的指令,而不是主控制器的范围内的功能;因此,它找不到它的原因。你有什么理由在这里定义这个功能,而不是在主控制器中说? –
是的,因为我正在使用的库,所以我需要在指令内部保留函数。无论如何,我编辑了上面的代码,因为我忘记了函数定义中的“$ parent”。我的错。 – Andrew
依靠范围层次结构是一种错误的模式,目前不被视为“最佳实践”。确切的解决方案取决于指令和'sum'的使用方式。 – estus