【问题标题】:angularJS : disable link based on variable value, and display message boxangularJS:禁用基于变量值的链接,并显示消息框
【发布时间】:2016-03-16 17:12:45
【问题描述】:

我正在努力弄清楚如何根据布尔变量的值禁用 ng-click 事件。

我有一个表单,用户必须单击 (+) 符号/链接才能添加新记录,当用户这样做时,会触发一个小函数,并将布尔值设置为 false。

代码:

vm.addNewRecord = function (formClass) {
    vm.hasID = false;
};

表单有一个图标/链接,允许用户将有关参与者的信息保存到记录中。

代码:

<div class="icon">
    <a ng-click="addParticipants(data)">
        <i class="fa fa-fw fa-plus"></i>
    </a>
</div>                        

这个问题是这个信息依赖于一个记录 id,但这个 id 还不存在。

我需要能够禁用 ng-click 的:addParticipants(data) 是 hasId = false 的值,同时(不知何故)允许用户点击它在以下行中显示一条消息:“请在添加参与者之前保存此记录。”

到目前为止我已经尝试过,但没有成功:

<div class="datagrid-icon">
    <a ng-click="datagrid.add(datagrid)" ng-disabled="!hasID">
        <i class="fa fa-fw fa-plus"></i>
    </a>
</div>

还有:

<div class="datagrid-icon">
    <a ng-click="datagrid.add(datagrid)"  ng-class="{'disabled': !hasID}">>
        <i class="fa fa-fw fa-plus"></i>
    </a>
</div>

我检查了 hasID 的值,它是假的,但我仍然可以单击 addParticipants 的 (+) 号。而且,我不确定如果我设法禁用点击,我将显示消息,指示用户首先保存主记录,然后可以添加参与者。

如果有人能提供一些帮助来解决这个问题,那将不胜感激。

谢谢。

【问题讨论】:

  • 锚标签不支持ng-disabled

标签: javascript angularjs save angularjs-ng-disabled


【解决方案1】:

要禁用链接,您可以这样做

<a ng-click="hasID && datagrid.add(datagrid)">
    <i class="fa fa-fw fa-plus"></i>
</a>

但最好在你的控制器内部有一个方法,比如

vm.addToGrid = function(id) {
    if (id) {
    $scope.datagrid.add(id);
  } else {
    alert('Save the record before');
  }
}

<a ng-click="vm.addToGrid(datagrid)">
    <i class="fa fa-fw fa-plus"></i>
</a>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 2019-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多