В моем приложении есть две вкладки, назовем их просто A и B.
Графики находятся на вкладке A. Вот простой код:
<canvas width="100%" height="30%" style="width: 100%; height: 20%;" id="line_general"
class="chart chart-line" chart-data="myData"
chart-legend="true" chart-colours="colours"
chart-labels="myLabels" chart-series="mySeries"/>
Затем график заполняется при каждом нажатии кнопки, эта кнопка также находится на вкладке A:
$scope.buttonPressed = function(){
$http.get('remoteURL').success(function(response, status, headers, config){
myLabels = response.labels;
myData = respose.data;
...
}
Проблема возникает, когда пользователь переключается на вкладку B после первоначального заполнения графика и, пока эта вкладка активна, изменяет размер окна браузера. Это действие запускает событие в графе, которое пытается обновиться, но, поскольку оно скрыто из-за механизма вкладок пользовательского интерфейса начальной загрузки, обновление не работает и вызывает исключение.
Итак, моя идея заключалась бы в том, чтобы прослушивать событие смены вкладки, я могу сделать это, добавив событие выбора на вкладки с помощью:
<div ng-controller="MainCtrl" class="wrapper">
<tabset>
<tab ng-repeat="tab in tabs" heading="{{tab.title}}" active="tab.active" disable="tab.disabled" select="tabChanged(tab)">
<div ng-include="tab.content"></div>
</tab>
</tabset>
</div>
и внутри обработчика:
$scope.tabChanged = function(tab){
if(tab.title != "A"){
//disable refresh
}else{
// re-enable refresh
}
};
Итак, есть ли способ сделать это?
ng-click
на элементе вкладки, чтобы запустить вашу функцию?ng-click="tabChanged(tab)"
- person ODelibalta   schedule 18.09.2015