在 md-tab 标签上使用 ng-click
Use ng-click on md-tab label
我在使用 md-tabs
时遇到问题:每当我单击要显示的特定选项卡时,我都无法调用控制器函数。
以下是我试过的几个代码:
<md-tabs md-center-tabs id="menuTabs" md-dynamic-height="true" ng-click="focusSearch()">
<md-tab label="<i class='fa fa-search'></i>" ng-if="handleResize()">
<md-content class="control-sidebar-dark" ng-style="{'height' : menuHeight}">
和
<md-tabs md-center-tabs id="menuTabs" md-dynamic-height="true">
<md-tab label="<i class='fa fa-search' ng-click='focusSearch()'></i>" ng-if="handleResize()">
<md-content class="control-sidebar-dark" ng-style="{'height' : menuHeight}">
和
<md-tabs md-center-tabs id="menuTabs" md-dynamic-height="true">
<md-tab ng-click="focusSearch()" label="<i class='fa fa-search'></i>" ng-if="handleResize()">
<md-content class="control-sidebar-dark" ng-style="{'height' : menuHeight}">
我希望在单击此选项卡时调用我的 focusSearch()
函数,但她从来没有。
正如造物主所建议的那样,我最终使用了指令而不是 ng-click
:
尝试使用这些内置的 md-tab
属性
md-on-select
md-on-deselect
var app = angular.module('myapp', ['ngMaterial']);
app.controller('main', function($scope) {
$scope.myClickEvent1 = function() {
alert('one selected');
}
$scope.myClickEvent2 = function() {
alert('two selected');
}
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/angular-material/0.11.0/angular-material.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.6/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.6/angular-aria.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.6/angular-animate.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-material/0.11.0/angular-material.min.js"></script>
<div ng-app="myapp" ng-controller="main">
<md-tabs>
<md-tab md-on-select="myClickEvent1()">One</md-tab>
<md-tab md-on-select="myClickEvent2()">Two</md-tab>
</md-tabs>
</div>
注意:此事件与 ng-click 略有不同,因为如果已经选择并单击了选项卡,则不会触发该事件。
来源:https://material.angularjs.org/latest/#/api/material.components.tabs/directive/mdTab
我在寻找 angular/material 6 时到达这里,我是按照 Trevors 解决方案这样做的:
<mat-tab-group (selectedTabChange)="tabChanged($event)">
在.ts
文件中
tabChanged(event) {
if (event.tab.textLabel == 'matchingTabName') {
//do your stuff
} else {
//do your stuff
}
}
我在使用 md-tabs
时遇到问题:每当我单击要显示的特定选项卡时,我都无法调用控制器函数。
以下是我试过的几个代码:
<md-tabs md-center-tabs id="menuTabs" md-dynamic-height="true" ng-click="focusSearch()">
<md-tab label="<i class='fa fa-search'></i>" ng-if="handleResize()">
<md-content class="control-sidebar-dark" ng-style="{'height' : menuHeight}">
和
<md-tabs md-center-tabs id="menuTabs" md-dynamic-height="true">
<md-tab label="<i class='fa fa-search' ng-click='focusSearch()'></i>" ng-if="handleResize()">
<md-content class="control-sidebar-dark" ng-style="{'height' : menuHeight}">
和
<md-tabs md-center-tabs id="menuTabs" md-dynamic-height="true">
<md-tab ng-click="focusSearch()" label="<i class='fa fa-search'></i>" ng-if="handleResize()">
<md-content class="control-sidebar-dark" ng-style="{'height' : menuHeight}">
我希望在单击此选项卡时调用我的 focusSearch()
函数,但她从来没有。
正如造物主所建议的那样,我最终使用了指令而不是 ng-click
:
尝试使用这些内置的 md-tab
属性
md-on-select
md-on-deselect
var app = angular.module('myapp', ['ngMaterial']);
app.controller('main', function($scope) {
$scope.myClickEvent1 = function() {
alert('one selected');
}
$scope.myClickEvent2 = function() {
alert('two selected');
}
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/angular-material/0.11.0/angular-material.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.6/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.6/angular-aria.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.6/angular-animate.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-material/0.11.0/angular-material.min.js"></script>
<div ng-app="myapp" ng-controller="main">
<md-tabs>
<md-tab md-on-select="myClickEvent1()">One</md-tab>
<md-tab md-on-select="myClickEvent2()">Two</md-tab>
</md-tabs>
</div>
注意:此事件与 ng-click 略有不同,因为如果已经选择并单击了选项卡,则不会触发该事件。
来源:https://material.angularjs.org/latest/#/api/material.components.tabs/directive/mdTab
我在寻找 angular/material 6 时到达这里,我是按照 Trevors 解决方案这样做的:
<mat-tab-group (selectedTabChange)="tabChanged($event)">
在.ts
文件中
tabChanged(event) {
if (event.tab.textLabel == 'matchingTabName') {
//do your stuff
} else {
//do your stuff
}
}