-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