aboutsummaryrefslogtreecommitdiffstats
path: root/docs/content/cookbook/deeplinking.ngdoc
diff options
context:
space:
mode:
authorVojta Jina2011-11-29 21:51:59 -0800
committerVojta Jina2012-01-23 11:05:36 -0800
commit992c790f0786fa45c1cc3710f29bf49c7c322ba7 (patch)
tree581d06ea9ba275a14d5891d83b2df03f9930bd45 /docs/content/cookbook/deeplinking.ngdoc
parentf5343c9fd3c7cd0fefdb4d71d2b579dbae998d6a (diff)
downloadangular.js-992c790f0786fa45c1cc3710f29bf49c7c322ba7.tar.bz2
refactor(scope): separate controller from scope
Controller is standalone object, created using "new" operator, not messed up with scope anymore. Instead, related scope is injected as $scope. See design proposal: https://docs.google.com/document/pub?id=1SsgVj17ec6tnZEX3ugsvg0rVVR11wTso5Md-RdEmC0k Closes #321 Closes #425 Breaks controller methods are not exported to scope automatically Breaks Scope#$new() does not take controller as argument anymore
Diffstat (limited to 'docs/content/cookbook/deeplinking.ngdoc')
-rw-r--r--docs/content/cookbook/deeplinking.ngdoc46
1 files changed, 21 insertions, 25 deletions
diff --git a/docs/content/cookbook/deeplinking.ngdoc b/docs/content/cookbook/deeplinking.ngdoc
index 2ef3da4a..a4dc3a9b 100644
--- a/docs/content/cookbook/deeplinking.ngdoc
+++ b/docs/content/cookbook/deeplinking.ngdoc
@@ -39,42 +39,38 @@ The two partials are defined in the following URLs:
<doc:example>
<doc:source jsfiddle="false">
<script>
- AppCntl.$inject = ['$route']
- function AppCntl($route) {
+ AppCntl.$inject = ['$scope', '$route']
+ function AppCntl($scope, $route) {
// define routes
$route.when("/welcome", {template:'./examples/welcome.html', controller:WelcomeCntl});
$route.when("/settings", {template:'./examples/settings.html', controller:SettingsCntl});
- $route.parent(this);
+ $route.parent($scope);
// initialize the model to something useful
- this.person = {
+ $scope.person = {
name:'anonymous',
contacts:[{type:'email', url:'anonymous@example.com'}]
};
}
- function WelcomeCntl($route){}
- WelcomeCntl.prototype = {
- greet: function() {
- alert("Hello " + this.person.name);
- }
- };
-
- SettingsCntl.$inject = ['$location'];
- function SettingsCntl($location){
- this.$location = $location;
- this.cancel();
+ function WelcomeCntl($scope) {
+ $scope.greet = function() {
+ alert("Hello " + $scope.person.name);
+ };
+ }
+
+ function SettingsCntl($scope, $location) {
+ $scope.cancel = function() {
+ $scope.form = angular.copy($scope.person);
+ };
+
+ $scope.save = function() {
+ angular.copy($scope.form, $scope.person);
+ $location.path('/welcome');
+ };
+
+ $scope.cancel();
}
- SettingsCntl.prototype = {
- cancel: function() {
- this.form = angular.copy(this.person);
- },
-
- save: function() {
- angular.copy(this.form, this.person);
- this.$location.path('/welcome');
- }
- };
</script>
<div ng:controller="AppCntl">
<h1>Your App Chrome</h1>