0
我有一個非常基本的測試應用程序。它有兩頁空白索引和另一頁上的登錄表單。我想知道如何將變量傳遞到每個頁面上相同的佈局(顯示它的用戶名/狀態以及按狀態顯示登錄/註銷)。EmberJS將變量傳遞給佈局
或者最好的解決方案可能是這樣的:將用戶模型傳遞給可從任何地方訪問的AppController(如登錄頁面或登錄模式)以及如果更改並保存數據,則網站模板只是由通過變量。
我試圖找到一個好辦法,我找了幾個的人,但他們都不是工作:(如果你知道一個工作方式,請分享我還是告訴我該如何解決。
這裏是我的代碼:JS的我:
App = Ember.Application.create();
App.ApplicationController = Ember.Controller.extend({});
/* *** Index *** */
App.IndexView = Ember.View.extend({
layoutName: 'app_view'
});
App.IndexController = Ember.Controller.extend({
});
/* *** LOGIN *** */
App.Router.map(function() {
this.resource("login");
});
App.LoginView = Ember.View.extend({
layoutName: 'app_view'
});
App.LoginController = Ember.Controller.extend({
login: function() {
// blah blah
}
});
佈局模板:
<script type="text/x-handlebars" data-template-name="app_view">
<header id="site">
{{#link-to "index"}}Index{{/link-to}}
{{#link-to "login"}}Login{{/link-to}}
{{variablaWhatIWant}}
</header>
<hr />
<section id="content">
{{yield}}
</section>
<hr />
<footer id="main">
Footer
</footer>
</script>
2視圖模板:
<script type="text/x-handlebars" data-template-name="index">
Hello INDEX page!
</script>
<script type="text/x-handlebars" data-template-name="login">
<form class="form-horizontal" {{action "login" on="submit"}}>
<div class="control-group">
Username: {{input value=username type="text"}}
</div>
<div class="control-group">
Password {{input value=password type="password"}}
</div>
<button type="submit" class="btn">Log in!</button>
</form>
</script>
非常感謝! :)
是的,我得到這個部分訪問控制器,但如果向_ApplicatonController_添加變量_variablaWhatIWant:'qwe'_,它將不會在佈局模板中可見。所以基本上我想給_ApplicationCotnroler_添加一個默認值,這個值可以從模板中獲得,稍後如果我改變它,模板會自動改變它。 – 2014-10-12 11:50:59
@KrizsánBalazs你可以通過'{{controllers.application.variablaWhatIWant}}'來訪問任何需要控制器的模板的屬性:['application']'所有的綁定都可以正常工作。 – Jakeii 2014-10-12 12:27:49
非常感謝! :) – 2014-10-12 13:37:35