Используем groupby
, resample
с W-Mon
и sum
:
df.groupby('Name').resample('W-Mon', on='Date').sum().reset_index().sort_values(by='Date')
Выход:
Name Date Quantity
0 Apple 2017-07-17 90
3 orange 2017-07-17 20
1 Apple 2017-07-24 30
2 Orange 2017-07-31 40
Возможно, вам просто нужно использовать тег кнопки, если вам не нужен uri.
Проверьте этот параметр
<a href="#" ng-click="logout(event)">Logout</a>
$scope.logout = function(event)
{
event.preventDefault();
alert("working..");
}
Просто напишите ng-click перед href .. Он работал для меня
<!DOCTYPE html>
<html>
<head>
<script data-require="angular.js@1.5.0" data-semver="1.5.0" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js"></script>
<script>
angular.module("module",[])
.controller("controller",function($scope){
$scope.func =function(){
console.log("d");
}
})</script>
</head>
<body ng-app="module" ng-controller="controller">
<h1>Hello ..</h1>
<a ng-click="func()" href="someplace.html">Take me there</a>
</body>
</html>
Вы можете просто запретить поведение события click по умолчанию непосредственно в вашем шаблоне.
<a href="#" ng-click="$event.preventDefault();logout()" />
] Директивы, такие как ngClick и ngFocus, выставляют объект $ event в рамках этого выражения.
blockquote>
Я добавлю для примера пример, который работает для меня, и вы можете изменить его, как хотите.
Я добавляю следующий код внутри своего контроллера.
$scope.showNumberFct = function(){
alert("Work!!!!");
}
и для моей страницы просмотра я добавляю следующий код.
<a href="" ng-model="showNumber" ng-click="showNumberFct()" ng-init="showNumber = false" >Click Me!!!</a>
Здесь так много ответов на этот вопрос, но кажется, что есть немного путаницы в том, что на самом деле происходит здесь.
Во-первых, ваша предпосылка
«href переопределяет ng-click в Angular.js»
blockquote>неверен. На самом деле происходит то, что после щелчка событие щелчка сначала обрабатывается угловым (определяется директивой
ng-click
в угловых 1.x иclick
в угловом 2.x +), а затем продолжает размножаться (что в конечном итоге вызывает браузер, чтобы перейти к URL-адресу, определенному атрибутомhref
). (См. этот для получения дополнительной информации о распространении события в javascript)Если вы хотите этого избежать, отмените распространение события с помощью . Метод
preventDefault()
интерфейса события :<a href="#" ng-click="$event.preventDefault();logout()" />
(Это чистая функциональность javascript и не имеет ничего общего с угловым)
Теперь это уже решит вашу проблему, но это не оптимальное решение. Угловая, по праву, продвигает шаблон MVC . С помощью этого решения ваш шаблон html смешивается с логикой javascript. Вы должны стараться избегать этого как можно больше и поместить свою логику в свой угловой контроллер. Таким образом, лучший способ -
<a href="#" ng-click="logout($event)" />
И в вашем методе logout ():
logout($event) { $event.preventDefault(); ... }
Теперь событие клика не дойдет до браузера, поэтому оно не будет пытаться загрузите ссылку, указанную
href
. (Однако обратите внимание, что если пользователь щелкнет правой кнопкой мыши по ссылке и сразу откроет ссылку, тогда вообще не будет события щелчка, а будет напрямую загружать URL, указанный атрибутомhref
.)Относительно комментариев о посещенных цветах ссылок в браузерах. Опять же, это не имеет никакого отношения к угловому, если ваш
href="..."
указывает на посещаемый URL вашего браузера по умолчанию, цвет ссылок будет другим. Это контролируется CSS: посещенный Selector , вы можете изменить свой css, чтобы отменить это поведение:a { color:pink; }
PS1:
Некоторые ответы предлагают использовать :
<a href .../>
href
является угловой директивой. Когда ваш шаблон обрабатывается угловым, он будет преобразован в<a href="" .../>
. Эти два способа по существу одинаковы.
Это работало для меня в IE 9 и AngularJS v1.0.7:
<a href="javascript:void(0)" ng-click="logout()">Logout</a>
Благодаря комментарий duckeggs для рабочего решения!
Этот пример с сайта угловой документации просто делает href
, даже не присваивая его пустой строке:
[<a href ng-click="colors.splice($index, 1)">X</a>]
//for dynamic elements - if you want it in ng-repeat do below code
angular.forEach($scope.data, function(value, key) {
//add new value to object
value.new_url = "your url";
});
<div ng-repeat="row in data"><a ng-href="{{ row.url_content }}"></a></div>
Еще один намек. Если вам нужен реальный URL (для поддержки доступности браузера), вы можете сделать следующее:
template:
<a ng-href="{{link}}" ng-click="$event.preventDefault(); linkClicked(link)">{{link}}</a>
директива:
$scope.linkClicked = function(link){
// your code here
$location.path(link);
};
В этом ваш код в linkClicked () будет иметь шанс выполнить перед переходом на ссылку
Вот еще одно решение:
<a href="" ng-click="logout()">Sign out</a>
i.e. Просто удалите # из атрибута href
В Angular <a>
s - директивы . Таким образом, если у вас есть пустой href
или нет href
, Angular вызовет event.preventDefault
.
element.on('click', function(event){
// if we have no href url, then don't navigate anywhere.
if (!element.attr(href)) {
event.preventDefault();
}
});
Вот plnkr , демонстрирующий отсутствующий сценарий href
.
Вы также можете попробовать следующее:
<div ng-init="myVar = 'www.thesoftdesign'">
<h1>Tutorials</h1>
<p>Go to <a ng-href="{{myVar}}">{{myVar}}</a> to learn!</p>
</div>
Не думаю, что вам нужно удалить «#» из href. После работы с Angularjs 1.2.10
<a href="#/" ng-click="logout()">Logout</a>
Вы пытались перенаправить внутри самой функции выхода из системы? Например, скажем, что ваша функция выхода из системы следующая
$scope.logout = function()
{
$scope.userSession = undefined;
window.location = "http://www.yoursite.com/#"
}
Тогда вы можете просто
<a ng-click="logout()">Sign out</a>