Angularjs 将事件onClick添加到下拉列表的最后一个元素
假设我有一个下拉列表,我想在列表的最后一个元素中添加一个onClick事件,例如:Angularjs 将事件onClick添加到下拉列表的最后一个元素,angularjs,dropdownbox,Angularjs,Dropdownbox,假设我有一个下拉列表,我想在列表的最后一个元素中添加一个onClick事件,例如: 伦敦 巴黎 米兰 添加新城市+ ng change指令仅在下拉列表中有多个元素时对我有帮助,否则如果我有这样的列表(只有一个元素): 添加新城市+ 我永远无法将onClick事件设置为唯一项,因为它永远不会更改组合框的值 更新 <select ng-model="customer.selectedCity" ng-options="opt as opt.name for opt in custom
- 伦敦
- 巴黎
- 米兰
- 添加新城市+
- 添加新城市+
<select ng-model="customer.selectedCity" ng-options="opt as opt.name for opt in customer.cityOptions"
ng-init="model="customer.selectedCity" = customer.cityOptions[0]"
ng-change="onCustomerCitySelected(customer)" ></select>
您可以尝试添加默认值,如下所示:
<select ng-model="model2" ng-options="item for item in items2" ng-change="processItemChange(model2)">
<option value="">Select Value From Items2</option>
</select>
从Items2中选择值
因此,现在您可以添加ng change
函数来定义新值是否为addnewvalue
演示:您可以尝试添加默认值,如下所示:
<select ng-model="model2" ng-options="item for item in items2" ng-change="processItemChange(model2)">
<option value="">Select Value From Items2</option>
</select>
从Items2中选择值
因此,现在您可以添加ng change
函数来定义新值是否为addnewvalue
演示:完全不用
ng change
就可以实现这一点。考虑以下事项:
HTML模板
<select ng-model="selectedIndex"
ng-options="index as name for (index, name) in menu">
</select>
<div class="btn-group" dropdown>
<button type="button"
class="btn btn-primary">{{ vm.selectedCity || 'Not selected' }}
</button>
<button type="button"
class="btn btn-primary dropdown-toggle"
dropdown-toggle>
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
<li ng-repeat="item in vm.menu">
<a ng-if="!$last" href="#"
ng-bind="item"
ng-click="vm.selectedCity = item"></a>
<a ng-if="$last" href="#"
ng-bind="item"
ng-click="vm.addNewCity()"></a>
</li>
</ul>
</div>
您还可以考虑使用ui引导
下拉列表
HTML模板
<select ng-model="selectedIndex"
ng-options="index as name for (index, name) in menu">
</select>
<div class="btn-group" dropdown>
<button type="button"
class="btn btn-primary">{{ vm.selectedCity || 'Not selected' }}
</button>
<button type="button"
class="btn btn-primary dropdown-toggle"
dropdown-toggle>
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
<li ng-repeat="item in vm.menu">
<a ng-if="!$last" href="#"
ng-bind="item"
ng-click="vm.selectedCity = item"></a>
<a ng-if="$last" href="#"
ng-bind="item"
ng-click="vm.addNewCity()"></a>
</li>
</ul>
</div>
上面的例子会产生类似的结果
与此处的所有代码相关的Plunk您完全无需使用
ng change
即可实现此功能。考虑以下事项:
HTML模板
<select ng-model="selectedIndex"
ng-options="index as name for (index, name) in menu">
</select>
<div class="btn-group" dropdown>
<button type="button"
class="btn btn-primary">{{ vm.selectedCity || 'Not selected' }}
</button>
<button type="button"
class="btn btn-primary dropdown-toggle"
dropdown-toggle>
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
<li ng-repeat="item in vm.menu">
<a ng-if="!$last" href="#"
ng-bind="item"
ng-click="vm.selectedCity = item"></a>
<a ng-if="$last" href="#"
ng-bind="item"
ng-click="vm.addNewCity()"></a>
</li>
</ul>
</div>
您还可以考虑使用ui引导
下拉列表
HTML模板
<select ng-model="selectedIndex"
ng-options="index as name for (index, name) in menu">
</select>
<div class="btn-group" dropdown>
<button type="button"
class="btn btn-primary">{{ vm.selectedCity || 'Not selected' }}
</button>
<button type="button"
class="btn btn-primary dropdown-toggle"
dropdown-toggle>
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
<li ng-repeat="item in vm.menu">
<a ng-if="!$last" href="#"
ng-bind="item"
ng-click="vm.selectedCity = item"></a>
<a ng-if="$last" href="#"
ng-bind="item"
ng-click="vm.addNewCity()"></a>
</li>
</ul>
</div>
上面的例子会产生类似的结果
这里有所有代码的相关plunkerHi@ababashka,非常感谢您的评论。我给了你+1,我想了一些类似的东西,可以解决我的问题,但是我的列表中不能有这些默认值,而且隐藏它们不是一个选项,因为它只会在你第一次更改组合值时起作用。@unpix:你到底想看到什么?你能提供一些开始代码,我可以从中给出一些建议吗?谢谢。基本上,我希望列表的最后一项有一个onclick事件,就像示例中一样。我用我的观点更新了代码,我需要以某种方式更改ng change指令以获得我想要实现的目标。否则,如果列表中只有1个元素,“AddNewCity+”的值不会改变。再次感谢@ababashka,非常感谢您的评论。我给了你+1,我想了一些类似的东西,可以解决我的问题,但是我的列表中不能有这些默认值,而且隐藏它们不是一个选项,因为它只会在你第一次更改组合值时起作用。@unpix:你到底想看到什么?你能提供一些开始代码,我可以从中给出一些建议吗?谢谢。基本上,我希望列表的最后一项有一个onclick事件,就像示例中一样。我用我的观点更新了代码,我需要以某种方式更改ng change指令以获得我想要实现的目标。否则,如果列表中只有1个元素,“AddNewCity+”的值不会改变。再次感谢你的时间,这帮助我实现了我想要的。感谢你的时间,这帮助我实现了我想要的。