有条件地改变输入的ng-model值



我有以下HTML代码:

<input type="text" ng-model="search.isOrdered"/>

如果用户输入ordered字,那么我想输入ng-model = true,如果用户输入unordered字,那么我想输入ng-model = false。在其他情况下,我想要ng-model = undefinedng-model = null。假设我不能使用单选按钮或复选框。

如何实现这一点?

谢谢

ng-change代替:

<input type="text" ng-model="search.order" ng-change="search.isOrdered = search.order == 'ordered'"/>

参见working fiddle

按如下方式修改HTML:

<input type="text" ng-model="search.isOrderedInput"/>

在你的控制器中:

    $scope.isOrdered = function() {
        var isOrdered;
        switch ($scope.isOrderedInput) {
        case 'ordered':
            isOrdered = true;
            break;
        case 'unordered':
            isOrdered = false;
            break;
        default:
            isOrdered = undefined;
            break;
        }
        return isOrdered;
    };

这应该比通过ng-change向视图添加逻辑更容易维护,不是吗?

最新更新