Ember CLI,ember sockets和coffescript
我只接触Ember一个月,所以不能保证这是最好的方法,但我已经设置了一个带有Socket.io和Ember Data的Ember CLI项目。以下内容基于我的工作代码,但以下内容未经测试。我认为你需要的99%都在这里了。祝你好运解决问题!
.jshintrc - 如果你不包含EmberSockets,Ember服务将会警告你。
{
"predef": {
"document": true,
"window": true,
"nameofprojectENV": true,
"EmberSockets": true
},
...
}
Brocfile.js - 导入 Ember Sockets
var EmberApp = require('ember-cli/lib/broccoli/ember-app');
var app = new EmberApp();
app.import('vendor/ember-sockets/package/ember-sockets.js');
module.exports = app.toTree();
app.js - 请记得用实际项目名称替换“nameofproject”
import Ember from 'ember';
import Resolver from 'ember/resolver';
import loadInitializers from 'ember/load-initializers';
Ember.MODEL_FACTORY_INJECTIONS = true;
var Socket = EmberSockets.extend({
host: 'example.local',
port: 8080,
controllers: [
'example'
]
});
var App = Ember.Application.extend({
modulePrefix: 'nameofproject',
Resolver: Resolver,
Socket: Socket
});
loadInitializers(App, 'nameofproject');
export default App;
router.coffee - 记得用实际项目名称替换nameofproject
`import Ember from 'ember'`
Router = Ember.Router.extend
location: nameofprojectENV.locationType
Router.map ->
@route 'example'
`export default Router`
models/example.coffee
`import DS from 'ember-data'`
Example = DS.Model.extend
name: DS.attr('string')
`export default Example`
routes/example.coffee
`import Ember from 'ember'`
ExampleRoute = Ember.Route.extend
model: ->
@store.all('example')
setupController: (controller, model) ->
controller.set('model', model)
`export default ExampleRoute`
controllers/example.coffee
`import Ember from 'ember'`
ExampleController = Ember.Controller.extend
getExamples: ->
@socket.emit 'pub',
data : {examples: true}
event: "getExamples"
templates/example.coffee
{{
{{example.id}} {{example.name}}
{{/each}}
<button {{action getExamples}}>Get Examples</button>
我建议使用
Chrome Ember Inspector进行故障排除。你还可以查看数据模型和记录等其他内容。
App.Apartment
,所以你只需要提供平面图数据,而不是整个apartment: { ... }
,只需要{ ... }
就可以了。 - Jakub Arnoldunshift()
的方法,可以将数据推送到列表的开头? - Chadstore.pushPayload(type, payload)
,它会插入原始数据。API说它是push,但在代码中是pushPayload。 - knownasilya