javascript - 使用 AngularJS 的默认过滤器和用户定义过滤器的输入字段

标签 javascript angularjs input filter pageload

这个问题一定有一个简单的答案,但我不明白。我使用以下输入元素通过 AngularJS 过滤表中的结果。如果我在输入字段中手动输入“foo”,该表将过滤“foo”。但是我的硬编码值“foo”(在输入的 value 属性中)既不会显示在浏览器中,也不会在页面加载时过滤结果。如何使该输入字段同时提供默认过滤器和用户定义的过滤器?提前致谢。

<input ng-model="search" id="search" type="text" placeholder="Search" value="foo">
<div ng-controller="eventsController")>
    <table>
        <tr ng-repeat="event in events | filter:search">
            <td><span ng-bind="event.title"></span></td>
            <td><span ng-bind="event.date_start"></span></td>
        </tr>
    </table>
</div>
<script>
    function EventsController($scope, $http) {
        $http.get('/api/all-events').success(function(events) {
            $scope.events = events;
        });
    }
</script>

最佳答案

如果您使用 ng-model 那么您不应该在 html 中设置您的值。相反,您应该在 Angular 中设置模型值。因此,摆脱 value="foo"并执行此操作。

function EventsController($scope, $http) {
        $http.get('/api/all-events').success(function(events) {
            $scope.events = events;
            $scope.search = "foo"; //This will set the models search to foo 
        });
    }

关于javascript - 使用 AngularJS 的默认过滤器和用户定义过滤器的输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24494353/

相关文章:

javascript - 更改输入 -> 无需单击即可更改复选框模型

javascript - 简单代码既不能在 jsfiddle 也不能在 codepen 上运行,而是在我的浏览器 (Chrome) 上运行?

html - 文本未与相应的复选框对齐

html - 输入标签中的#id 是什么意思?

javascript - 对于字符串 返回 false 的 boolean 值 -  需要为 true

javascript - 多重 promise - 在哪里解决?

javascript - Protractor - 单击和发送键不起作用

javascript - 如何找到原因 AngularJS "Argument ' MyCtrl' 不是函数,未定义“

Javascript 不使用输入读取文件

javascript - 如何检查它是否是最后一个元素