我正在查看代码,却遇到了这行代码,无法弄清楚。

<table>
    <tr>
        <td align="right">Search :</td>
        <td><input ng-model="query[queryBy]" /></td>
    </tr>
    <tr>
        <td align="right">Search By :</td>
        <td>
            <select ng-model="queryBy">
                <option value="name">NAME</option>
                <option value="company">COMPANY</option>
                <option value="designation">DESIGNATION</option>
            </select>
        </td>
    </tr>
</table>
<hr>
<div>
    <table>
        <tr>
            <th>Employee Name</th>
            <th>Company Name</th>
            <th>Designation</th>
        </tr>
        <tr ng-repeat="emp in employees | filter:query">
            <td>{{emp.name}}</td>
            <td>{{emp.company}}</td>
            <td>{{emp.designation}}</td>
        </tr>
    </table>


[queryBy]在query [queryBy]中是什么意思?

JS:

$scope.query = {};
$scope.queryBy = '';

最佳答案

<input ng-model="query[queryBy]" />


此输入将显示对象查询中queryBy值的属性。

例如,

$scope.query = {
    name: "someName",
    company: "someCompany",
    designation: "someDesignation"
};


然后,当用户选择NAME时,输入将显示someName。

如果用户选择COMPANY,则输入将显示someCompany。

如果用户选择“指定”,则输入将显示“指定”。

更新

关键是在下面的过滤器中使用了查询。

<tr ng-repeat="emp in employees | filter:query">
    <td>{{emp.name}}</td>
    <td>{{emp.company}}</td>
    <td>{{emp.designation}}</td>
</tr>


它将像这样使用。用户键入用于搜索的关键字,然后选择用户想要搜索的查询类型,然后将在过滤器中使用查询对象,以便相应地显示数据。

关于javascript - 带支架的ng-model,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52773473/

10-13 00:09