2013-04-10 92 views
2

我想要一個標題標題根據正在使用的控制器而變化。如何在emberjs中處理顯示動態全局屬性

這是我的應用程序模板:

<div class="container"> 
    <div class="content"> 
    <div class="page-header"> 
     {{#if pageTitle}} 
     <h1>{{pageTitle}}</h1> 
     {{/if}} 
    </div> 
    <div class="span12"> 
     {{outlet}} 
    </div> 
    </div> 
</div> 

如果頁面標題設置應該顯示出來。

現在說我有一個職位控制器我想:

App.PostsController = Ember.ArrayController.extend({ 
    pageTitle: 'Posts' 
}); 

,沒有工作。

我也試着像設置它在路線:

App.PostsRoute = Ember.Route.extend({ 
    model: function() { 
    return App.Post.find(); 
    }, 
    setupController: function(controller) { 
    controller.set('pageTitle', 'Posts'); 
    } 
}); 

我敢肯定,這是很簡單的,我只是沒有看到做我想要做的最好的方式。

任何幫助將是偉大的,謝謝!

回答

4

您需要設置ApplicationController上的pageTitle值,因爲該值在插座外部使用,所以上下文是此情況下應用程序中最外層的控制器。

App.PostsRoute = Ember.Route.extend({ 
    model: function() { 
    return App.Post.find(); 
    }, 
    setupController: function(controller) { 
    this.controllerFor("application").set('pageTitle', 'Posts'); 
    } 
});