【问题标题】:Switch Button Not Working From API Handling切换按钮在 API 处理中不起作用
【发布时间】:2017-02-24 16:39:19
【问题描述】:

我有问题。我基于 API 制作了切换按钮。在我看来,只需更改“开”/“关”即可。但是当我点击“关闭”按钮时,我的按钮变为“开启”,但是当我点击“开启”时它不起作用。然后在我点击之后,我的按钮无法再次点击。太奇怪了。对我有什么解决方案吗?我需要帮助。

控制器:

这个显示isactive API 的控制器打开或关闭。并显示基于isactive

$scope.result[item._id] =   {
     item : item,
     active : item.active,
     btn_label : item.active === 0 ? "On" : "Off"
};

所以,我将btn_label 放在 view 中,如下所示:

<tbody ng-repeat="data in result">
                    <tr>
                        <td>
                            {{ startnumber + $index + 1 }}
                        </td>
                        <td>
                            {{ data.item._id }}
                        </td>
                        <td>
                            {{ data.item.title }}
                        </td>
                        <td>
                            {{ data.item.category.label }}
                        </td>
                        <td>
                            {{ data.item.user.name }}
                        </td>
    <button class="btn btn-success" ng-click="FiturThread(data.item)"><i class="fa fa-toggle-on"></i> {{ data.btn_label }}</button>
</tbody>

我认为,只需更改 $scope FiturThread 中的 btn_label 但不起作用

$scope.FiturThread = function(data) {

        if(data.btn_label === 0){
            data.btn_label = "Off";
        }else{
            data.btn_label = "On";
        }
};

请帮助我或给我解决方案,谢谢

【问题讨论】:

    标签: javascript angularjs angularjs-scope angularjs-ng-repeat


    【解决方案1】:

    您的data.btn_label 永远不会等于零,因此您永远不会得到“开启”标签。 也许你用active 属性解雇了?

    我建议你像这样使用布尔活动属性:

    ...
    active: item.active,
    btn_label : item.active ? "On" : "Off"
    ...
    
    $scope.FiturThread = function(data) {
        data.active = !data.active;
        data.btn_label = data.active ? "On" : "Off"
    };
    

    它更加紧凑和清晰。

    你也应该发送给控制器方法数据:ng-click="FiturThread(data)"

    【讨论】:

    • 是的,我尝试使用 data.active === 0 更改条件,但不会发生任何事情。控制台是正确的,但我的按钮没有切换
    【解决方案2】:

    你能试试这个吗:

    $scope.FiturThread = function(data) {
    
            if(data.btn_label === 'On'){
                data.btn_label = "Off";
            }else{
                data.btn_label = "On";
            }
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-19
      • 1970-01-01
      • 1970-01-01
      • 2021-08-06
      相关资源
      最近更新 更多