Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS/Javascript创建$scope运行时_Javascript_Angularjs - Fatal编程技术网

AngularJS/Javascript创建$scope运行时

AngularJS/Javascript创建$scope运行时,javascript,angularjs,Javascript,Angularjs,我已经看了几个小时了,如果这是一个愚蠢的问题,请道歉,但是在AngularJS或Javascript中有没有办法做到以下几点: HTML //我有许多用于不同控件的html代码模板 <button data-action="flip" ng-click="imageControl($event)"></button> 问题是: 我有没有办法在运行时使用actionType创建和设置变量 为什么?所以我不必为每个控件创建10个不同的if语句 顺便说一句-我知道这不起作用

我已经看了几个小时了,如果这是一个愚蠢的问题,请道歉,但是在AngularJS或Javascript中有没有办法做到以下几点:

HTML //我有许多用于不同控件的html代码模板

<button  data-action="flip" ng-click="imageControl($event)"></button>
问题是:

我有没有办法在运行时使用actionType创建和设置变量 为什么?所以我不必为每个控件创建10个不同的if语句
顺便说一句-我知道这不起作用,但用它来说明示例

我会简化问题,因为angular不需要数据属性

标记:

<button  ng-click="imageControl('flip')"></button>

<div ng-show="actions.flip"> // html stuff </div>

布罗科,你是我的英雄。。。这是一个多么简单而漫长的解决方案啊!我正在制作原型等等。非常感谢!没问题,只要记住很多时候,简单的解决方案就是正确的解决方案。K.I.S.S.的进攻意图不是这件事,但我添加了$scope.actions=[];在功能开始时,确保是否有一个活动控件,用户然后单击另一个控件,您不会以错误的控件仍然处于活动状态结束。同样,初始化$scope.actions很好,但我会通过{}将其创建为对象,而不是数组[]。这是因为索引器将是字符串而不是数字。我希望当我成为JS专家时,我不会有一种不劳而获的傲慢感,因为我问了一个问题而给某人打-1分。我在特种部队呆了8年,从来没有因为问一个愚蠢的军事问题而不尊重任何人。总是寻求谦虚会使人生旅途更加愉快。
$scope.imageControl = function($event) {
   // get data-action from html element e.g. flip 
   var actionType = $event.currentTarget.getAttribute("data-action");



     $scope.actionType ? $scope.actionType = false : $scope.actionType = true;

}
<button  ng-click="imageControl('flip')"></button>

<div ng-show="actions.flip"> // html stuff </div>
$scope.imageControl = function(action) {
  $scope.actions[action] = !$scope.actions[action];
};