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')
    });