[英]Render, Partial, View. what should i put in my template?
我有一個應用程序,希望在其中創建用戶個人資料小部件。 該小部件將位於應用程序模板的導航欄中。 小部件看起來像一個登錄按鈕,它會彈出一個模態登錄對話框或一個下拉菜單,其中包含指向各種與用戶相關的功能/路由的鏈接。
到目前為止,小部件的邏輯是這樣的:
{{#if 'user.loggedIn'}}
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-user"/> {{user.username}}</a>
<ul class="dropdown-menu">
<li>{{#link-to "profile" user}}Profile{{/link-to}}</li>
<li>{{#link-to "logoff" user}}Logout{{/link-to}}</li>
</ul>
{{else}}
<button class="btn btn-primary navbar-btn" data-target="#loginModal" data-toggle="modal">Login</button>
{{/if}}
我希望有一個控制器來處理登錄功能並調用模式提示符:
App.UserController = Em.ObjectController.extend({
loggedIn: Em.computed.readOnly('model.loggedIn'),
username: '',
password: '',
showLoginModal: function(){
Em.$("#loginModal").modal();
},
hideLoginModal: function() {
Em.$("#loginModal").modal('hide');
},
login: function() {
var username = this.get('username'),
success = true; //attempt a login
console.log('logging in as' + username);
if(success) {
this.send('hideLoginModal');
this.set('user.loggedIn', true);
}
return false;
}
});
所以我的問題是,使用窗口小部件的UserController將組件/視圖/部分放入應用程序模板的最佳方法是什么?
我是炭燼的新手,所以請保持友善:)。
我將為視圖使用一個組件,並處理ApplicationController和UserModel中的登錄邏輯。
但是實際上,有多種方法可以解決該問題! 您也可以直接在applicationTemplate中執行此操作。
但是:U不應使用普通視圖或偏見! 通常,您應該改用組件!
如果您需要View / Controller模式,並且沒有明確分開,則可以使用渲染助手。
通用爾:如果你可以分開,那你應該。 然后,您應該使用組件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.