你能在选项元素上设置点击事件吗?(Angular v2.0.0-beta.0)
Can you set click events on option elements? (Angular v2.0.0-beta.0)
我使用的是optgroup
元素,我希望从一组中选择option
元素,以做出不同的反应,并传递与其他元素不同的数据。
但是我设置的处理程序方法并没有在这里启动。我是遗漏了什么,还是不支持在选项元素上设置单击事件?
import {Component} from 'angular2/core';
import {NgFor} from 'angular2/common';
import {City, County, RegionalData} from './interfaces';
import {api} from './api.service';
@Component({
selector: 'geo-selector',
template: `
<div>
<select name="region-selector">
<option disabled="disabled" selected="selected">Select a city/county</option>
<optgroup label="Cities">
<option *ngFor="#city of cities" [value]="city" (click)="onCitySelect(city)">{{city.name}}</option>
</optgroup>
<optgroup label="Counties">
<option *ngFor="#county of counties" [value]="county" (click)="onCountySelect(county)">{{county.name}}</option>
</optgroup>
</select>
<label for="">Zip Search</label>
<input type="text" name="zip-search"/>
</div>
`,
providers: [api],
directives: [NgFor]
})
export class GeoSelector {
public cities: City[];
public counties: County[];
public selectedRegion: any;
constructor(private _api:api) {
this.getRegions();
}
getRegions(): void {
this._api.getRegions().then((data: RegionalData) => {
let cities = this.cities = data.cities;
let counties = this.counties = data.counties;
this.selectedRegion = cities[0] ? cities[0] : counties[0];
});
}
onCitySelect(region) : void {
console.log(region);
}
onCountySelect(region): void {
console.log(region);
}
}
option
元素不会触发点击事件。这不是Angular2的限制,而是浏览器的限制。您可以改为监听select
元素的change
事件,然后从中找出单击了什么option
元素。
这个非语言2示例适用于Firefox 43.0.2,但不适用于Chrome 47。也许你看到了类似的行为?
<select>
<option></option>
<option onclick="alert('option test');">Test Option</option> <!-- does not work -->
</select>
<button onclick="alert('button test');">Test Button</button> <!-- works -->
https://jsfiddle.net/t7xzxrtw/2/
(注意:快速示例,而非生产质量代码)
相关文章:
- Angular JS IE9 Hashbang url rewriting
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 使用angular重定向到html页面
- angular.js没有'无法在PhoneGap中处理视图标记
- Javascript(Angular)从一个对象数组到第二个数组查找值
- angular 1.5应用程序中的导航栏
- angular的下拉菜单
- Angular只从数组中获取所需的数据
- 如何将不可变的js导入angular 2(alpha)
- Angular js-返回一个包含类似
- 如何使用 Angular JS 将数据保存在数据库中
- 将JSON对象传递给angular指令
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- Angular:更新一次性绑定的数据
- 基本的REST调用WordPress V2 API与Angular.js
- 你能在选项元素上设置点击事件吗?(Angular v2.0.0-beta.0)
- 如何在Angular中从表单' example.com/path#p1=v1&p2=v2.. '的URL中提取查询参数
- Angular/Bootstrap Modal不会调用两次TypeError: v2.deleteModalProjec