【问题标题】:Remove class onclick... angular js删除类 onclick... angular js
【发布时间】:2018-03-10 20:24:14
【问题描述】:

对这个有点疯狂。我已经谷歌了几个小时,但无法弄清楚......

基本上,我有一个带有一排单选按钮的表单。 (数据正在通过 ng-repeat 提取,但它基本上只是一种饮料的名称,具有价格价值)。例如。名称:拿铁。价格:2.00

<div class="field">
  <label class="radio" ng-repeat="drink in grindsIndex.menuDrinks" >
    <input id='drinkRadio' type="radio" ng-model="value"
         value="{{ drink.price }}" placeholder="{{ drink.name }}"
         name="name" ng-model="grindsIndex.name"
         ng-change="newValue(value)" ng-click="clickMethod()";/>
    {{ drink.name }}
  </label>
</div>

单击复选框时,我希望通过删除类隐藏来显示另一行单选按钮。 (这有一个 ng-repeat,另一个名称值列表,价格值被拉过)。例如:名称:Honey,价格:0.50。

  <div id='extrasOptions' class="field hide">
    <label class="radio" ng-repeat="extra in grindsIndex.menuExtras" >
      <input type="radio" ng-model="value" value="{{ extra.price }}"
             placeholder="{{ extra.name }}" name="name"
             ng-change='newValue(value)'/ 
             ng-click="count = count + extra.price" ng-init="count=0">
      {{ extra.name }}
    </label>
  </div>

在我的相关控制器中,我正在尝试添加一个事件监听器、onclick 函数(或任何我能做到的),以简单地从第二行复选框中删除类“隐藏”,以便它们出现。

$scope.clickMethod = function () {
  extrasOptions.removeClass('hide');
};

但每次都会出错..

app.js:33457 错误:[jqLit​​e:nosel] jqLit​​e 不支持通过选择器查找元素!”

好像我不能使用'removeClass,因为我的应用程序/角度不喜欢它。

我想做的就是当你点击第一行代码中的任何单选按钮时,使第二组单选按钮出现......

有人可以帮忙吗? Google 正在展示一些复杂的选项,而我是新手...

谢谢! 雷纳

【问题讨论】:

    标签: javascript css angularjs class


    【解决方案1】:

    为什么你不使用ng-hide / ng-show

    <div id='extrasOptions' ng-show="foo" class="field">
        <label class="radio" ng-repeat="extra in grindsIndex.menuExtras" >
        <input type="radio" ng-model="value" value="{{ extra.price }}" placeholder="{{ extra.name }}" name="name" ng-change='newValue(value)'/ ng-click="count = count + extra.price" ng-init="count=0">{{ extra.name }}
        </label>
      </div>
    

    如果 footrue,则显示 div,如果 foofalse 则不显示。

    $scope.clickMethod = function () {
        foo = true
    };
    

    你也可以使用 FirstRadioButton 的值。

    【讨论】:

    • 您的答案混合了angularangularjs。您不能在角度 1.x 中使用 [hidden],也不能在角度 2 中使用 $scope。这将与 ng-show 完美配合,但是...
    • 感谢您的回复!我尝试了您的解决方案,但后来我得到:“foo is not defined”...
    • 当然你必须在你的控制器中定义它。但是 foo 对变量来说是个坏名字。它只是一个例子
    • 对不起这个愚蠢的问题,但我应该如何定义它?
    • 这行得通:$scope.clickMethod = function() { $scope.show = true; };
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-27
    • 1970-01-01
    • 2020-11-25
    • 2018-02-19
    • 2011-10-31
    • 2020-01-07
    • 1970-01-01
    相关资源
    最近更新 更多