我在页面中有多个标签,通过点击其中任何一个我想调用方法: HTML:
@foreach (Tabs tab in Enum.GetValues(typeof(Tabs)))
{
<uib-tab index="@((int)tab)">
<uib-tab-heading ng-click="tabSelected('@tab')">
</uib-tab-heading>
</uib-tab>
}
AngularJS:
$scope.tabSelected = function (tab) {
$scope[tab]();
};
现在我得到错误说:$scope[tab]()
不是函数!
我该如何解决?
答案 0 :(得分:0)
我认为在$scope.tabSelected
之前定义所有功能是你的答案。
Javascript从上到下工作,因此必须在此函数之前对函数进行描述。
$scope.x = function() {
};
$scope.y = function() {
};
$scope.z = function() {
};
$scope.tabSelected = function(tab) {
$scope[tab]();
};
一个工作示例:
angular.module("app", []).controller("text", [
"$scope",
function($scope) {
$scope.x = function() {
console.log("x");
};
$scope.y = function() {
console.log("y");
};
$scope.z = function() {
console.log("z");
};
$scope.tabSelected = function(tab) {
$scope[tab]();
};
}
]);
<div ng-app="app">
<div ng-controller="text">
<button ng-click="tabSelected('x')">X</button>
<button ng-click="tabSelected('y')">Y</button>
<button ng-click="tabSelected('z')">Z</button>
</div>
</div>
答案 1 :(得分:0)
你的代码应该是:
$scope.tabSelected = function (tab) {
$scope.selectedTab = tab;
};