我正在寻找一个优雅的策略来使用emberjs(和ember-data)检索当前用户信息.
目前,我做以下事项:
我的API响应/users/me当前用户.
在我的适配器中,当检索到的对象id不是我希望的real_id那个时,我添加一个id(数据库中用户的id),并用我期望的内容替换实际返回的id.
因此,当我的适配器将"我"作为用户的id,但服务器返回1时,我得到以下json:
{"real_id": 1, "id": "me"}
Run Code Online (Sandbox Code Playgroud)
这有效.但我不是一个大粉丝,我想尽可能避免更改适配器的默认内容.
你为此使用任何策略吗?你会推荐什么 ?
我已经在jQuery队列上阅读了很多答案和博客帖子......具体来说,这个特定的答案有很多帮助 - /sf/answers/232041421/.但是,jquery.com上的标准文档和上面的答案都让我看一下jquery代码http://code.jquery.com/jquery-1.7.2.js
我无法理解 - 从代码中 - 'fx'(默认)队列是如何自动启动的.特别是队列被清空后.
例如,在自定义队列上,当您手动启动队列,并且队列用完了要调用的函数时,对队列的任何引用都不再无效,所以我希望jquery代码中的某个位置试图找出状态队列如果是空的自动启动它?代码有点展示我遇到的,如果我只是缺少一段代码(我在上面的代码中看到行:2060-2160)请告诉我.
> var aq = $({});
> aq.queue("mp").length
0
> n1 = aq.queue("mp")
[]
> n1.length
0
> aq.queue("mp", function (next) { setTimeout(next, 5000); })
[Object]
> aq.queue("mp", function (next) { setTimeout(next, 5000); })
[Object]
> aq.queue("mp", function (next) { setTimeout(next, 5000); })
[Object]
> n1.length
0
> aq.queue("mp").length
3
> n1 = aq.queue("mp"); // reset n1 to the "new" queue...
> n1.length
3
Run Code Online (Sandbox Code Playgroud)
此外,如果任何部分不清楚,请告诉我,我会相应更新.
我有一个带有两个出口的应用程序模板的应用程序.当我进入root.index状态时,我只想连接一个插座,当我进入root.chats状态时,我希望连接两个插座.当我从root.index导航到root.chats时这很好用,但是当我向后导航时,navpane出口仍然存在(应该是这样).如何断开此插座或取消首先连接的视图?是否弃用了控制器mixin的disconnectOutlet方法?我应该完全不同地构建这个吗?我在下面提供了我的代码.谢谢.
// State flag helper function. See https://github.com/ghempton/ember-router-example/blob/master/js/app.js
function stateFlag(name) {
return Ember.computed(function() {
var state = App.router.currentState;
while(state) {
if(state.name === name) return true;
state = state.get('parentState');
}
return false;
}).property('App.router.currentState');
}
// Application
App = Em.Application.create({
ApplicationController: Ember.Controller.extend({
isChats: stateFlag('chats')
}),
ApplicationView: Ember.View.extend({
templateName: 'application'
}),
ChatlistController: Em.Controller.extend({
hideView: false
}),
ChatlistView: Em.View.extend({
templateName: 'chatlist',
didInsertElement: function(){
this.$("#nav_pane").css({'left':'-=275', 'z-index':'-5'}).animate({
left: ["+=275", 'swing'],
},500,function() {
$(this).css('z-index','5')
});
},
_hideViewChanged: function() {
if (this.get('hideView')) {
this.hide();
}
}.observes('hideView'),
hide: function() …Run Code Online (Sandbox Code Playgroud)