在AngularJS中使用'ng'作为自定义指令的前缀是否可取?

时间:2016-09-14 12:57:30

标签: javascript angularjs angularjs-directive

我在AngularJS中编写了一个小指令来显示用户信息,这是我写完的代码,

angular.module('app').directive('userProfile', function(){
    return {
      templateUrl: "userProfile.html",
      restrict: 'E',
    }
});

我将此指令包含在我的index.html as,

  <body ng-controller="myCtrl">
    <user-profile><user-profile>
  </body>

如果我想使用ng-前缀来维护整个项目的统一结构,那么我现在已经尝试将.directive('userProfile'声明更改为.directive('ngUserProfile',这实际上正在运行。< / p>

但是我想知道是否建议模仿ng-行为,如果是的话,是否有可以使用的最佳实践?

请帮忙!

提前致谢, 戴夫

4 个答案:

答案 0 :(得分:3)

使用ng进行前缀 NOT 是一个好主意。

启动AngularJS应用程序时,默认情况下会加载ng模块。模块本身包含AngularJS应用程序运行的基本组件。

强烈建议不要为我们开发的自定义组件(指令/过滤器)设置ng前缀,因为它不会在将来与任何角度组件发生冲突。

答案 1 :(得分:0)

因为HTML具有Angular括号和&#34; ng&#34;听起来像#34; Angular&#34;
ng-前缀是指令的预定义角度前缀 因此,如果您正在寻找自定义指令,您可以根据需要使用前缀中的任何内容。

.directive("myDir", function() { 
  // logic
})

前缀ng代表&#34; Angular;&#34; Angular附带的所有内置指令都使用该前缀 同样,建议您不要在自己的指令上使用ng前缀,以避免在将来的Angular版本中发生可能的名称冲突。

完成此操作 link

答案 2 :(得分:0)

不要使用ng前缀

这是AngularJS指令的命名标准,最好不要使用它以免与海关指令混淆。

答案 3 :(得分:0)

David R,

我建议你阅读John Papa的AngularJS风格指南

Here是关于为自定义指令提供前缀的说明