我有一个视图,其中可以有大量的项目供用户滚动,我想实现无限滚动以启用内容的渐进加载.
看起来有些人已经完成了分页,但谷歌没有提出任何讨论他们如何使用Ember/Ember Data完成无限列表的人.任何人都已经完成了这个并有一个博客文章/示例代码分享?
我的模型类型以-y:Security结尾
我如何告诉Ember Data使用/证券代替/ securitys为此寻找资源?
有没有办法轻松地将更改恢复为Ember Data模型?
我有一个绑定到编辑视图的模型.此视图使用户可以取消编辑,此时我想将更改还原为模型.有没有一种简单的方法可以在不克隆所有值的情况下执行此操作?
我在路由器上设置了browserHistory(react-router 2.0):
import { browserHistory } from 'react-router'
function requireAuth(nextState, replace) {
if (!services.auth.loggedIn()) {
replace({
pathname: '/login',
state: { nextPathname: nextState.location.pathname }
})
}
}
export default (store) => (
<Router history={browserHistory}>
<Route path='/' component={AppLayout}>
<Route path="login" component={LoginContainer} />
<Route path="map" component={MapContainer} onEnter={requireAuth} />
</Route>
</Router>
);
Run Code Online (Sandbox Code Playgroud)
然后我尝试在react-router中使用browserHistory以编程方式从视图路由到新页面,ala:
import { browserHistory } from 'react-router'
...
browserHistory.push('/map');
Run Code Online (Sandbox Code Playgroud)
这会将URL更改为/ map,但不会呈现该路由中的组件.我究竟做错了什么?
我有一个非常奇怪的问题 - 我使用与nvd3网站上的散点图示例相同的代码(但挂在我的ember.js应用程序中),我看到一个美丽的情节出来只是被破坏了大约500毫秒后,一组黑色圆圈大得多,但遵循相同的情节轮廓.
如果我在nv.d3.js中注释掉这一行:
gEnter.append('g').attr('class', 'nv-point-paths');
Run Code Online (Sandbox Code Playgroud)
这似乎没有发生,图形"工作"ala没有动画.
以前有人见过这样的东西吗?
我有一个可扩展/可折叠内容的视图,我希望通过单击表格行来切换.在pre1.0之前,我在模板中有这个:
<tr {{action "expand"}}>
Run Code Online (Sandbox Code Playgroud)
以前根据我的观点处理过:
App.ContentRowView = Em.View.extend({
templateName: 'ember/templates/content/row',
expand: function() {
this.set('isExpanded', !this.get('isExpanded'));
},
isExpanded: false
});
Run Code Online (Sandbox Code Playgroud)
但是,在升级到pre1.0之后,该操作现在由路由器直接进行.这在很多情况下都很有意义,但在这种情况下,扩展实际上是一个视角问题.我试过用一个单击事件处理程序替换它,没有运气.
有关如何使用pre1.0处理这样的视图关注事件的最佳实践吗?
我在我的应用程序中使用了一个ArrayController,它通过应用程序的路由器从Ember Data REST调用中提供:
postsController.connectOutlet('comment', App.Comment.find({post_id: post_id}));
Run Code Online (Sandbox Code Playgroud)
对于Post UI,我可以添加/删除评论.当我这样做时,我希望能够通过删除或添加相同的元素来更新postsController的contentArray,以便为用户提供可视反馈,但是Ember Data并不好玩:
Uncaught Error: The result of a server query (on App.Comment) is immutable.
Run Code Online (Sandbox Code Playgroud)
每低于sly7_7的评论,我只注意到这个结果确实DS.RecordArray时没有查询(App.Comment.find()),但在那里有一个查询(App.Comment.find({POST_ID的情况: post_id}),返回DS.AdapterPopulatedRecordArray.
我是否必须.observes('contentArray')并创建一个可变副本?或者有更好的方法吗?
是否可以在nvd3.js中组合线+散点图而不构建新模型,就像在示例和代码中使用linePlusBarChart一样?或者这是您可以组合图表类型的唯一方法吗?
我有一个非常有限的设备运行电池供电,没有马力进行密钥交换,所以相反,我们想使用PSK(预共享密钥)来保护频道.我似乎无法找到有关如何使用NGINX进行配置的任何信息.
我看到ssl_ciphers有PSK(我已启用)但是在哪里/如何指定NGINX和客户端之间的共享密钥?这支持吗?
有没有办法用Ember.js做实时数据?
我正在寻找的是能够将更新和新记录(而不是删除)注入先前返回的结果.
所以,假设我有这样的路由器,它可以实现排序和分页(也就是跳过):
App.Router.map(function() {
this.resource('messages', { path: '/messages/skip/:skip/sort/:sort/direction/:direction' });
});
App.MessagesRoute = Ember.Route.extend({
model: function(params) {
this.set('params', params);
return this.query();
},
query: function() {
var sort = {};
sort[this.get('params').sort] = parseInt(this.get('params').direction);
return App.Message.find({}, {
skip: this.get('params').skip,
sort: sort
});
},
setupController: function(controller, model) {
var self = this;
this._super(controller, model);
Ember.Instrumentation.subscribe('onMessage', {
before: function(name, timestamp, message) {
self.controller.set('content', self.query());
},
after: function() {}
});
},
});
Run Code Online (Sandbox Code Playgroud)
这很有效 - 它可以在静态意义上进行正确的排序和跳过.
(注意:我没有使用Ember数据 - 只是一组Ember对象.)
但是,消息不断到达,我希望这些消息的显示能够在消息到达时自动重新查询新消息.
我有一个websocket告诉我何时发生这种情况并且工作正常我正在使用Ember.Instrumentation基础设施将该事件路由到我拥有的setupController闭包.但是当我做的时候
this.controller.set('content', this.query());
Run Code Online (Sandbox Code Playgroud)
为了对此事件进行重新加载,内容全部消失.我究竟做错了什么?
ember.js ×6
ember-data ×4
nvd3.js ×2
javascript ×1
lazy-loading ×1
nginx ×1
react-router ×1
reactjs ×1
ssl ×1