我在让状态经理切换我的视图时遇到了一些麻烦。我有一个状态机,它最初将显示登录屏幕,一旦用户通过身份验证,状态机将转换到授权状态并显示工作区或仪表板。问题是,当我加载页面时,我看不到登录屏幕,所以我怀疑我遗漏了一些东西。我正在使用 emberjs 0.9.7.1
这是我想要添加屏幕的 div
<body>
<div id="main-container" class="container">
</div>
</body>
这是 login_view.handlerbars 文件的核心 html 片段(还有更多,但为简洁起见,我省略了它)。我可以看到这个编译并存储在 Ember.TEMPLATES['login_view'] 中。
<form class="form-inline">
<fieldset>
<input type="text" name="email">
<input type="password" name="password">
<button id="sign-in-button" class="btn btn-primary">Sign In</button>
</fieldset>
</form>
这是关联的视图 javascript 文件
App.LoginView = Ember.View.extend({
templateName: 'login_view'
});
最后,这是我的状态机。我在控制台中看到消息“进入未经授权的状态”,但我没有看到嵌入在指定 div 中的登录 html。
App.sessionStates = Ember.StateManager.create({
rootElement: '#main-container',
initialState: 'unauthorized',
unauthorized: Ember.ViewState.create({
viewClass: App.LoginView,
enter: function(stateManager, transition) {
console.log("Entering unauthorized state");
},
exit: function(stateManager, transition) {
console.log("Exiting unauthorized state");
}
}),
authorized: Ember.ViewState.create({
view: App.WorkspaceView
})
})
干杯