2013-05-12 87 views
33

从第一视图看起来像data-ng-click可以传递一些数据作为参数,方法应该在按下按钮期间调用。angularjs中的ng-click和data-ng-click有什么区别?

但我没有看到区别。

我遵循的代码片段:

HTML

<input 
    type="button" 
    value="Fess" 
    ng-click="toggle(2)"> 

OR

<input 
    type="button" 
    value="Fess" 
    data-ng-click="toggle(2)"> 

JS

$scope.toggle = function (valueS) { 
    alert(valueS);   
} 

这两个工作。

谢谢,

回答

32

他们是同样的事情。您可以使用data-ng-click来制作有效的html。

+1

嗯,我看不到'ng-click'上的任何错误或警告。 – 2013-05-12 09:23:05

+9

如果你通过html验证器传递它,你将会得到'属性ng点击不允许在这个点输入。虽然'data-ng-click'在html5中是一个有效的属性。 – NARKOZ 2013-05-12 09:47:22

11

angular docs on directives

指令有骆驼套管的名称,如ngBind。该指令可以是 ,通过将驼峰案例名称翻译为蛇案,并使用这些 特殊字符:, - 或_来调用。该指令可以是 ,前缀为x-或data-,以使其符合HTML验证器。这里的 是一些可能的指令名称列表:ng:bind,ng-bind, ng_bind,x-ng-bind和data-ng-bind。

将它们排除在外对于实践目的来说是完全不错的。只是,如果你通过html验证器服务运行它,它不会作为complliant传递。

3

HTML5具有嵌入自定义的数据属性上的所有HTML元素

这些新的自定义数据属性由两个部分组成的能力:

属性名称 数据属性名必须至少有一个字符长,并且必须以'data-'为前缀。它不应该包含任何大写字母。

属性值 属性值可以是任何字符串。

<li data-spacing="30cm" data-sowing-time="February to March">Celery</li> 

源:在有和没有使用表格http://html5doctor.com/html5-custom-data-attributes/

1

实测值的差。

当我的元素在窗体中时,它们的行为相同。

当我在表单中使用data-ng-click时,Click事件没有发生。