I read about the new syntax from angularJS regarding
controller as xxx
The syntax
Visualization : Ok , so I wont have the parameter $scope in my controller and the code will be much cleaner in the controller.But I will have to specify another alias in the view So Until now I could do :
And now I can do :
QuestionWhat is the goal of doing it ? removing from one place and add to another place ? I will be glad to see what am I missing. Below is the clarification for this : There are several things about it. Some people don't like the $scope syntax (don't ask me why). They say that they could just use this. That was one of the goals.Making it clear where a property comes from is really useful too. You can nest controllers and when reading the html it is pretty clear where every property comes. You can also avoid some of the dot rule problems. For example, having two controllers, both with the same name 'name', You can do this:
You can modify both parent and child, no problem about that. But you need to use $parent to see the parent's name, because you shadowed it in your child controller. In massive html code $parent could be problematic, you don't know where that name comes from.With controller as you can do:
Here is the example :
-----------------------------
index.html
-----------------------------
<!DOCTYPE html>
<html ng-app="plunker"> <head> <meta charset="utf-8" /> <title>AngularJS Plunker</title> <script>document.write('<base href="' + document.location + '" />');</script> <link rel="stylesheet" href="style.css" /> <script data-require="angular.js@1.2.x" src="http://code.angularjs.org/1.2.9/angular.js" data-semver="1.2.9"></script> <script src="script.js"></script> </head> <body ng-controller="ParentCtrl as parent"> <input ng-model="parent.name" /> {{parent.name}} <div ng-controller="ChildCtrl as child"> <input ng-model="child.name" /> {{child.name}} - {{parent.name}} </div> </body> </html>
--------------------
script.js
------------------------
var app = angular.module('plunker', []);
app.controller('ParentCtrl', function() { this.name = "Name from parent"; }); app.controller('ChildCtrl', function() { this.name = "Name from children"; }); |
Thursday, November 5, 2015
AngularJs “controller as” syntax
Ref:- http://stackoverflow.com/questions/21287794/angularjs-controller-as-syntax-clarification
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment