在angularjs中,您可以禁止在使用时重新加载页面。
<a href="" ng-click="..">text</a>
在angulardart中,链接实际上是导航到href。那是为了吗?
angularjs行为的Goog示例:http://docs.angularjs.org/api/ng.directive:ngHref
<a id="link-1" href ng-click="value = 1">link 1</a> (link, don't reload)
答案 0 :(得分:4)
修改强>
<a href="#" ng-click="ctrl.clickHandler($event)">text</a>
。
import 'dart:html';
// ...
void clickHandler(MouseEvent event) {
event.preventDefault(); // suppress default click action
event.stopPropagation(); //
//event.stopImmediatePropagation(); // optional
// do something else
}
旧回答
我自己还没有使用它,但AngularDart有NgHref指令
https://github.com/angular/angular.dart/blob/master/lib/directive/ng_src_boolean.dart#L60
答案 1 :(得分:1)
另一个解决方案是启用NgRoutingUsePushState
,这似乎不会干扰锚链接或ng-click。您只需删除或注释掉RoutingModule中的以下行:
//bind(NgRoutingUsePushState, toValue: new NgRoutingUsePushState.value(false));
要使用推送状态,您还必须让您的网络服务器将网址重写为index.html
。它使得在本地开发服务器上运行应用程序稍微复杂一些,但我决定采用它,因为我最终想要这个功能,因为这个bug。一个示例nginx配置是:
location / {
# try to serve file directly, fallback to rewrite
try_files $uri @rewriteapp;
}
location @rewriteapp {
# rewrite all to index.html
rewrite ^(.+)$ /index.html last;
}
注意:使用Angular 0.13.0进行测试