簡體   English   中英

渲染,局部視圖。 我應該在模板中放什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM