angularJS表达式$ scope.selectedTab = $ scope.setTab(1)? 1:2;

时间:2018-06-25 08:09:46

标签: javascript angularjs

为什么我不能使用这个表达式?

$scope.selectedTab = $scope.setTab(1) ? 1 : 2 ;

setTab函数:

$scope.setTab = function(tabNum) { 
    $scope.selectedTab = tabNum; 
    return $scope.selectedTab; 
}

错误消息:

  

TypeError:$ scope.setTab不是函数

1 个答案:

答案 0 :(得分:0)

在声明函数之前不能使用它。当函数在代码的后面部分中定义时,就会发生这种情况。 调用$ scope.setTab函数时,将不会定义该函数。

该函数必须在实际调用之前定义。

提琴

angular.module("app", []).controller("ctrl", ctrl);

function ctrl($scope){
  $scope.setTab = function(tabNum) { 
      $scope.selectedTab = tabNum; 
      return $scope.selectedTab; 
  }

  $scope.selectedTab = $scope.setTab(1) ? 1 : 2 ;
    console.log($scope.selectedTab);

}

https://jsfiddle.net/gladson1976/n0r1v29e/6/