有条件地改变输入的ng模型的值

时间:2014-07-10 19:49:40

标签: javascript angularjs

我有以下HTML代码:

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

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

如何实现这一目标?

由于

2 个答案:

答案 0 :(得分:3)

改为使用ng-change

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

请参阅working fiddle

答案 1 :(得分:2)

按如下方式更改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,no?

向视图添加逻辑更容易维护