【问题标题】:Name conventions in angualrjs directivesangularjs 指令中的命名约定
【发布时间】:2013-10-22 22:24:18
【问题描述】:

这对我有用(服务器端验证示例):

AngularJS: integrating with server-side validation

但是,我决定再问一个问题。

在该示例中,我们使用 unique-email 指令:

<input type="email" ng-model="userEmail" name="userEmail" required unique-email/>

但是在创建指令时,我们使用 uniqueEmail

app.directive('uniqueEmail', function($http) { ..

为什么?它是否与名称中的命名约定/规则有关? Angular 如何知道在哪里看以及如何将一个与另一个连接起来?

我只是想知道,因为当我使用 &lt;input ... required uniqueEmail 时它不起作用。直到我输入“unique-email”

如果我输入也一样:

app.directive('unique-email', function($http) {

在我输入uniqueEmail之前它不会起作用

所以在使用指令和定义它时没有机会使用一个样式名称。

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    来自here

    指令具有驼峰式名称,例如 ngBind。该指令可以是 通过将骆驼案例名称翻译成蛇案例来调用 特殊字符 :、- 或 _。可选的指令可以是 以 x- 或 data- 为前缀,使其符合 HTML 验证器。

    所以,是的,这是一个角度约定。

    【讨论】:

    • 那么在使用指令和定义时没有机会使用一个样式名称?
    【解决方案2】:

    标签和属性只使用小写是 html 惯例(部分原因是 HTML5 不区分大小写。class="" 与 ClaSS="" 相同)。 Angular 不想将指令名称限制为小写。因此,它允许在 Angular 中使用大写字母,然后为您处理将这些名称转换为 html 标准蛇形大小写。

    因此,您可以在 Angular 中获得命名灵活性并提高可读性,同时保持符合 html 命名标准。

    请注意,如果您只使用小写名称,则不必担心名称转换。当然,这可能会以牺牲 Angular 代码的可读性为代价。

    【讨论】:

      猜你喜欢
      • 2015-02-19
      • 2012-09-12
      • 1970-01-01
      • 2017-06-22
      • 2017-04-21
      • 2018-11-22
      • 1970-01-01
      • 1970-01-01
      • 2018-02-07
      相关资源
      最近更新 更多