Sta*_*eff 6 javascript angularjs angular-material
你可以点击它们来选择md-chip元素md-chips,但我还没有找到一个好的方法来找出在控制器中选择了哪一个.
有没有人完成这个?
<md-chips ng-model="ctrl.roFruitNames">
<md-chip-template>
<strong>{{$chip}}</strong>
<em>(fruit)</em>
</md-chip-template>
</md-chips>
Run Code Online (Sandbox Code Playgroud)
小智 11
使用md-on-select:选择芯片时将调用的表达式.
<md-chips md-on-select="getChipInfo($chip)" md-on-remove="removeChip($chip)"> ... </md-chip>
Run Code Online (Sandbox Code Playgroud)
在你的控制器中
$scope.getChipInfo= function(chip_info) {
console.log(chip_info);
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,就我在Angular Material的代码中看到的而言,这并未在当前的实现中公开md-chip.
您可以通过直接访问指令的控制器来解决它,但它非常脏,并且很容易打破未来的版本md-chip.
<md-chips ng-model="ctrl.roFruitNames" ng-click="ctrl.getSelectedChip($event)">
Run Code Online (Sandbox Code Playgroud)
在控制器中:
self.getSelectedChipIndex = function(event) {
var selectedChip = angular.element(event.currentTarget).controller('mdChips').selectedChip;
alert(selectedChip);
}
Run Code Online (Sandbox Code Playgroud)
看它工作:
http://codepen.io/anon/pen/oXopQq
Angular Material已经有一个问题需要这样的东西,所以希望它将来会被添加:
https://github.com/angular/material/issues/3413
[编辑]
获取芯片数据:
var ctrl = angular.element(event.currentTarget).controller('mdChips');
if(ctrl !== undefined){
var selectedChip = ctrl.items[ctrl.selectedChip];
}
Run Code Online (Sandbox Code Playgroud)