我有一个应用程序,我希望创建一个用户配置文件小部件。窗口小部件将位于应用程序模板的导航栏中。小部件看起来像一个登录按钮,弹出模态登录对话框或下拉菜单,其中包含指向各种用户相关功能/路线的链接。
小部件的逻辑到目前为止:
{{#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将此组件/视图/部分放入应用程序模板的最佳方法是什么?
我很贪图,所以请保持友好:)。
答案 0 :(得分:0)
我会为视图使用一个组件,并在ApplicationController和UserModel中处理登录逻辑。
但实际上,有多种方法可以解决这个问题! U也可以直接在applicationTemplate中完成。
但是:你不应该使用普通视图或部分视图!大多数情况下你应该使用一个组件!
渲染助手是一个选项,如果你需要视图/控制器模式,如果它没有明确分开!
Generall: 如果你可以分开它,你应该。然后你应该使用一个组件。