为 HTML 和 AngularJS 中的选定选项标签实现带有 ng-repeat 的 ng-if
Implementing ng-if with ng-repeat for selected option tag in HTML and AngularJS
我有一个下拉菜单,使用 select 和带 AngularJS 的选项标签,引用一个模型,就像这样。
<select id="edit-location" class="" ng-model="packageLoc">
<option ng-repeat="x in loc" value="{{ x.locationId }}">{{ x.locationLoc }} - ({{ x.locationFloor }}{{ x.locationBuilding }})</option>
</select>
此下拉列表列出了大约七个位置 ID 供用户选择。
但是,我有另一个模型可以从另一个条目中调出特定的位置 ID;此位置 ID 肯定会是显示在上方下拉列表中的位置 ID 之一。称之为 packageSearch.locationId
。这只会是一个数字。
如果此位置 ID 与上面下拉列表中的位置 ID 之一匹配,我希望显示 selected
关键字,使上面的下拉列表显示我的第二个模型的位置 ID。
我已经尝试用 ng-if 来实现它。但我没有成功。见下文:
<select id="edit-location" class="" ng-model="packageLoc">
<option ng-repeat="x in loc" value="{{ x.locationId }}" ng-if="{{ x.locationId === packageSearch.locationId" selected>{{ x.locationLoc }} - ({{ x.locationFloor }}{{ x.locationBuilding }})</option>
</select>
如果具有 AngularJS 的 <option>
元素之一的值与另一个模型的数据匹配,我如何才能将 selected
关键字应用到该元素?
我建议您在满足此条件时使用正确的值设置模型 (packageLoc),而不是添加 selected 属性。
假设您有另一个设置 packageSearch 的 select,您可以这样做:
<select id="search-location" ng-model="packageSearch" ng-change="setLocation()">
<option ng-repeat="..."></option>
</select>
在控制器的 setLocation 函数中,您可以这样写:
packageLoc = packageSearch; (or whatever you'd like to do here)
尝试使用 ng-selected:
<select id="edit-location" class="" ng-model="packageLoc">
<option ng-repeat="x in loc"
value="{{ x.locationId }}"
ng-selected="x.locationId === packageSearch.locationId">
{{ x.locationLoc }} - ({{ x.locationFloor }}{{ x.locationBuilding }})
</option>
</select>
我有一个下拉菜单,使用 select 和带 AngularJS 的选项标签,引用一个模型,就像这样。
<select id="edit-location" class="" ng-model="packageLoc">
<option ng-repeat="x in loc" value="{{ x.locationId }}">{{ x.locationLoc }} - ({{ x.locationFloor }}{{ x.locationBuilding }})</option>
</select>
此下拉列表列出了大约七个位置 ID 供用户选择。
但是,我有另一个模型可以从另一个条目中调出特定的位置 ID;此位置 ID 肯定会是显示在上方下拉列表中的位置 ID 之一。称之为 packageSearch.locationId
。这只会是一个数字。
如果此位置 ID 与上面下拉列表中的位置 ID 之一匹配,我希望显示 selected
关键字,使上面的下拉列表显示我的第二个模型的位置 ID。
我已经尝试用 ng-if 来实现它。但我没有成功。见下文:
<select id="edit-location" class="" ng-model="packageLoc">
<option ng-repeat="x in loc" value="{{ x.locationId }}" ng-if="{{ x.locationId === packageSearch.locationId" selected>{{ x.locationLoc }} - ({{ x.locationFloor }}{{ x.locationBuilding }})</option>
</select>
如果具有 AngularJS 的 <option>
元素之一的值与另一个模型的数据匹配,我如何才能将 selected
关键字应用到该元素?
我建议您在满足此条件时使用正确的值设置模型 (packageLoc),而不是添加 selected 属性。
假设您有另一个设置 packageSearch 的 select,您可以这样做:
<select id="search-location" ng-model="packageSearch" ng-change="setLocation()">
<option ng-repeat="..."></option>
</select>
在控制器的 setLocation 函数中,您可以这样写:
packageLoc = packageSearch; (or whatever you'd like to do here)
尝试使用 ng-selected:
<select id="edit-location" class="" ng-model="packageLoc">
<option ng-repeat="x in loc"
value="{{ x.locationId }}"
ng-selected="x.locationId === packageSearch.locationId">
{{ x.locationLoc }} - ({{ x.locationFloor }}{{ x.locationBuilding }})
</option>
</select>