您的位置:首页 > Web前端 > AngularJS

[AngularJS] Angular 1.3 Anuglar hint

2014-11-08 23:41 225 查看
Read More: http://www.linkplugapp.com/a/953215

https://docs.google.com/document/d/1XXMvReO8-Awi1EZXAXS4PzDzdNvV6pGcuaF4Q9821Es/pub

angular-hint
helps
us writing better Angular code and makes finding very common mistakes in our code base easier. For example, did it ever happen to you, that you developed your Angular app, you grabbed a module from somewhere, then you started using the directives that the module comes with, and no matter how much you followed the usage instructions, it simply didn’t work. And after one hour of debugging you found out that you forgot to add the module dependency to your application. Yikes!

These modules are:

angular-hint-controllers - Warns about use of global controllers and hints about best practices for controller naming

angular-hint-directives - Hints about misspelled attributes and tags, directives and more

angular-hint-dom - Warns about use of DOM APIs in controllers

angular-hint-events - Identifies undefined variables in event expressions

angular-hint-interpolation - Notifies of undefined parts of interpolations chains and suggests available variables

angular-hint-modules - Identifies missing module namespaces, undeclared modules, multiple uses of
ng-app
and more

Install and using
angular-hint

npm install angular-hint


Once it’s installed, we can embed the source in our application right after Angular itself like this:

<script type="path/to/angular/angular.js"></script>
<script type="path/to/angular-hint/hint.js"></script>


Next, we apply the
ng-hint
directive in order to actually use the
angular-hint
module:

<body ng-app="myApp" ng-hint>
</body>


By default,
ng-hint
injects all the mentioned hint modules.

However, if we don’t want to get controller related hints, but are interested in DOM related hints, we can restrict the use of hint modules by using the
ng-hint-include
directive instead
.

The following code only injects
angular-hint-dom
:

<body ng-app="myApp" ng-hint-include="dom">
</body>


We can even define more than just one hint module if needed:

<body ng-app="myApp" ng-hint-include="dom directives">
</body>


Module hints

If you declared an module:

angular.module('myAppDependency', []);


but forgot to include into your main app:

angular.module('myApp', []);


Now, instead of fiddling around for an hour to find out why
myAppDependency
’s directives aren’t picked up,
angular-hint
is telling us that we might missed something. Simply open your browsers console and you should see something like this:

Angular Hint: Modules
Module "myAppDependency" was created but never loaded.


Controller hints

One of these best practices is, when naming controllers, to suffix them with
Controller
instead of
using short names like
Ctrl
.
angular-hint
helps with that too. Let’s take a look what happens when we define a controller with a name that doesn’t have this suffix:

angular.module('myApp', []).controller('AppCtrl', function () {

});


Having a controller registered like this,
angular-hint
gives us the following warning:

Angular Hint: Controllers
The best practice is to name controllers ending with 'Controller'.
Check the name of 'AppCtrl'


Directive hints

Example where error might happens:

<ul>
<li ng-repaet="i in [1,2,3,4]">
<!-- more dom goes here -->
</li>
</ul>


However, when
angular-hint
is activated, we get the following very useful warning:

Angular Hint: Directives
There was an AngularJS error in LI element.
Found incorrect attribute "ng-repaet" try "ng-repeat"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: