Lifelong nerds, we both work as consultants for Rightpoint Consulting with almost 20 years combined experience in server side .Net and a more recent deep dive into client side development specialising in AngularJs
Angular is a development platform for building mobile and desktop web applications
http://angular.ioSeriously awesome, it brings all of the structure and sanity from server side frameworks to the front end
Owen CraigI love the modularity, the separation of concerns. Also, love Directives; they are like lego pieces for building web apps.
Scot GoodhartController Text: Hello, World
<div class="_angularOverview" ng-controller="naiveController as vm">
<p><span class="label">Controller Text:</span> {{vm.text}}</p>
<ul>
<li ng-repeat="int in vm.ints track by $index">{{int}}</li>
</ul>
</div>
angular.module("angularOverview").controller('naiveController', function(){
var vm = this;
vm.text = 'Hello, World';
vm.ints = [42,28,15,9,180,99];
});
Controller Text: Hello, World
<div class="_angularOverview" ng-controller="naiveController as vm">
<div>
<label for="twoWayText">Input text:</label>
<input type="text" id="twoWayText" ng-model="vm.text">
</div>
<div>
<label for="arrayBind">Array[2] Value:</label>
<input type="number" id="arrayBind" ng-model="vm.ints[2]">
</div>
<p><span class="label">Controller Text:</span> {{vm.text}}</p>
<ul>
<li ng-repeat="int in vm.ints track by $index">{{int}}</li>
</ul>
</div>
Controller Text: Hello, World
<div class="_angularOverview" ng-controller="naiveController as vm">
<div>
<label for="twoWayText">Input text:</label>
<input type="text" id="twoWayText" ng-model="vm.text">
</div>
<div>
<label for="arrayBind">Array[2] Value:</label>
<input type="number" id="arrayBind" ng-model="vm.ints[2]">
</div>
<p><span class="label">Controller Text:</span> {{vm.text}}</p>
<list-numbers numbers="vm.ints"></list-numbers>
</div>
angular.module("angularOverview").directive('listNumbers', function () {
return {
restrict: 'E',
scope: {
numbers: '='
},
template:'<ul><li ng-repeat="int in numbers">{{int}}</li></ul>'
};
});
Controller Text: Hello, World
angular.module("angularOverview").controller('diController', function(IntegralService){
var vm = this;
vm.text = 'Hello, World';
vm.ints = IntegralService.getSomeInts();
});
angular.module("angularOverview").factory('IntegralService', function () {
return {
getSomeInts: getSomeInts
};
function getSomeInts(){
return [42,28,15,9,180,99];
}
});
We're hiring: http://rightpoint.com/careers