gpt4 book ai didi

javascript - 来自 Controller 中多个 ng-show 函数的单个函数

转载 作者:行者123 更新时间:2023-11-30 12:06:57 25 4
gpt4 key购买 nike

我有几个用 Angular 编写的函数,用于通过范围在页面上显示多个 ng-show 属性。我试图使用 if else 语句将所有三个函数放入一个函数中,但我无法让该函数第二次触发。我想知道是否有一种方法可以在单个函数中执行此操作,以及这种功能的最佳实践是什么。

JS Fiddle 在这里 - http://jsfiddle.net/ezy_/01L050mr/2/

这是目前分布在 3 个不同函数中的 JS。

var app = angular.module('app',[]);

function AppCtrl($scope) {
$scope.skillsState = false;

$scope.rolesState = false;

$scope.qualsState = false;

$scope.skillsStateTrigger = function() {
$scope.skillsState = true;
$scope.rolesState = false;
$scope.qualsState = false;
};

$scope.rolesStateTrigger = function() {
$scope.skillsState = false;
$scope.rolesState = true;
$scope.qualsState = false;
};

$scope.qualsStateTrigger = function() {
$scope.skillsState = false;
$scope.rolesState = false;
$scope.qualsState = true;
};
}

如果我将函数设置为从单个 statesTrigger(resp) 函数触发,我是否需要 $watch 或 $apply 函数来触发更新?

最佳答案

看看这里:updated with 1 function

  $scope.triggerState = function (state) {
if (state == 'skills') {
$scope.skillsStateTrigger();
} else if (state == 'roles') {
$scope.rolesStateTrigger();
} else if (state == 'quals') {
$scope.qualsStateTrigger();
}
}
  <button ng-click="triggerState('skills')">Skills</button>
<button ng-click="triggerState('roles')">Roles</button>
<button ng-click="triggerState('quals')">Quals</button>

您甚至可以像这样在 HTML 本身中更加具体:State variable

<body ng-app="app" class="ng-scope">
<div class="container ng-scope" ng-controller="AppCtrl">
<button ng-click="currentState = 'skills'">Skills</button>
<button ng-click="currentState = 'roles'">Roles</button>
<button ng-click="currentState = 'quals'">Quals</button>
<div class="row" ng-show="currentState == 'skills'" style="display: none;">
Skills State Active
</div>
<div class="row" ng-show="currentState == 'roles'" style="display: none;">
Roles State Active
</div>
<div class="row" ng-show="currentState == 'quals'" style="display: none;">
Quals State Active
</div>
</div>
</body>

关于javascript - 来自 Controller 中多个 ng-show 函数的单个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34912652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com