Current User Emberjs
Global user with emberjs
by saturngod
HTML
<script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="http://builds.emberjs.com/handlebars-1.0.0.js"></script>
<script src="http://builds.emberjs.com/tags/v1.1.2/ember.min.js"></script>
<script type="text/x-handlebars">
<h1>Ember Sandbox</h1>
<nav>
{{#linkTo "index"}}Home{{/linkTo}}
{{#linkTo "about"}}About{{/linkTo}}
</nav>
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="header">
Header Template
<hr/>
Last Name: {{currentUser.lastName}}
</script>
<script type="text/x-handlebars" data-template-name="index">
<p>currentUser.fullName: <code>{{currentUser.fullName}}</code></p>
<p>view App.HeaderView: <code>{{render 'header'}}</code></p>
</script>
<script type="text/x-handlebars" data-template-name="about">
<h2>About</h2>
<p>A little live editor for Ember, written in Ember.</p>
Full name: {{currentUser.fullName}}
<input type="button" {{action "showCurrentUserName" action="onclick"}} value="Testing">
</script>
JavaScript
App = Ember.Application.create({
title: 'BQJedi',
LOG_TRANSITIONS: true,
rootURL: '/',
ready: function(){
var cu = App.CurrentUserController.create({
firstName: 'My First',
lastName: 'My Last',
userToken: '9001'
});
this.register('user:current', cu, {singleton: true, instantiate: false});
this.inject('controller', 'currentUser', 'user:current');
}
});
App.AboutController = Ember.ObjectController.extend({
currentUser: Ember.computed.alias('App.CurrentUserController'),
actions : {
showCurrentUserName: function()
{
alert(this.get("currentUser").firstName);
}
}
});
App.Router.map(function() {
this.route('about');
});
App.CurrentUserController = Ember.ObjectController.extend({
fistName: 'Ninja',
lastName: '',
userToken: null,
fullName: function () {
return this.firstName + ' ' + this.lastName;
}.property('firstName', 'lastName'),
isLoggedIn: Ember.computed.notEmpty('userToken')
});