我试图使用angular.js从另一个函数调用一个函数,但它给出了以下错误。
TypeError: $scope.addwithDept is not a function
我正在解释下面的代码。
Rolecontroller.js:
var dashboard = angular.module('Channabasavashwara');
dashboard.controller('roleController', function ($scope, $http, $state) {
$scope.buttonName = "Add";
$scope.addUserRoleData = function () {
if ($('#addProfileData')[0].defaultValue == 'Add') {
if ($scope.showDept) {
$scope.addwithDept();
} else {
$scope.addwithOutDept();
}
}
}
$scope.addWithDept = function () {
console.log('hii');
}
})
错误来自if语句中的函数。请帮我解决此错误。
答案 0 :(得分:1)
将函数scope.addWithDept
移动到调用它的函数上方。
定义为$scope.functionName = function() {...
时的函数是函数表达式。该函数尚未定义,因此调用它会导致fn is not a function
错误。此函数与函数声明不同。函数声明被提升到顶部,而函数表达式则不是。
var dashboard = angular.module('Channabasavashwara');
dashboard.controller('roleController', function ($scope, $http, $state) {
$scope.buttonName = "Add";
// Moved this function here
$scope.addWithDept = function () {
console.log('hii');
};
$scope.addUserRoleData = function () {
if ($('#addProfileData')[0].defaultValue == 'Add') {
if ($scope.showDept) {
$scope.addwithDept();
} else {
$scope.addwithOutDept();
}
}
};
});