假设我有一个锚标记,例如
<a href="#" ng-click="do()">Click</a>
如何防止浏览器导航到 AngularJS中的 #?
更新 :此后,我改变了主意。经过更多的开发和花时间进行此工作之后,我相信针对此问题的更好解决方案是执行以下操作:
<a ng-click="myFunction()">Click Here</a>
然后更新您css
的规则,使其具有附加规则:
a[ng-click]{
cursor: pointer;
}
它更加简单,并提供完全相同的功能,并且效率更高。希望对将来寻找该解决方案的其他人有所帮助。
以下是我以前的解决方案,仅出于遗留目的而留在这里:
如果您经常遇到此问题,则可以通过以下简单指令来解决此问题:
app.directive('a', function() {
return {
restrict: 'E',
link: function(scope, elem, attrs) {
if(attrs.ngClick || attrs.href === '' || attrs.href === '#'){
elem.on('click', function(e){
e.preventDefault();
});
}
}
};
});
它检查所有锚标记(<a></a>
),以查看其href
属性是否为空字符串(""
)或哈希('#'
)或是否有ng- click
分配。如果发现这些条件中的任何一个,它将捕获事件并阻止默认行为。
唯一的缺点是它为所有锚标记运行此指令。因此,如果页面上有很多锚标记,而只想防止其中的少量锚标记的默认行为,则此指令的效率不是很高。但是,我几乎总是想要preventDefault
,因此我在AngularJS应用程序中全部使用了此指令。
我有一个父pom,它为我的其他组件提供所需的版本号变量 您必须使用分类器将补充工件附加到项目中,而不是替换它们 我发现这是因为jar打包固有的maven jar插件默认绑定,但我正在进行war打包,所以在war打包之后,默认jar执行开始并抛出上面的一个。任何停止违约的解决方案都将帮助我提前感谢。
问题内容: 我正在尝试做类似于嵌入式Google地图的操作。我的组件应忽略单点触摸(允许用户滚动页面),并在其自身外部捏合(允许用户缩放页面),但应对双键触摸做出反应(允许用户在组件内部导航),并在这种情况下禁止任何默认操作。 如何防止触摸事件的默认处理,仅在用户用两只手指与我的组件进行交互的情况下? 我尝试过的 我尝试捕获,和。事实证明,在FF Android上,对部件进行捏合时触发的第一个事件
我有一个带有几个文本字段的表单。当我用数据填充它时,有一些整数文本字段显示“0”,这是整数的默认值。我希望文本字段是空的,而不是零。 请帮忙。
以下是postgres 9.1数据库的一些SQL示例: 这是我的python脚本: 有没有办法防止标签相互重叠?理想情况下是以自动方式,因为我无法预测棒的数量。
问题内容: 我想向包含标签的浏览器输出一行文本。呈现此效果时,DIV似乎会换行。如何在同一行的div标签中包含内容-这是我的代码。 我试图在这里整理一下。如何在一行上显示此内容? 问题答案: 该标签是块元素,造成这种行为。 您应该改用内联元素。 如果您 确实 要使用,请添加。(您也可以将其放入CSS规则中)
问题内容: 如何防止onclick方法中的默认设置?我有一个传递自定义值的方法 问题答案: 让您的回调返回并将其传递给处理程序: 但是,要创建可 维护的 代码,您应该避免使用_“内联Javascript”_(即直接位于元素标签内的代码),并通过包含的Javascript源文件(称为unobtrusiveJavascript)修改元素的行为。 标记: 代码(单独的文件):