ember js中的动态片段

时间:2015-10-24 05:41:29

标签: javascript node.js ember.js

我是ember js的新手。我试图在我的ember项目中使用动态段并且它给了我一个错误。我在浏览器中尝试了localhost / 4200 / profile / john以获取“john”的信息。我认为它抱怨服务器中的api终点.js ..请帮我找一下我做错了。

控制台中显示

错误:

获取本地主机:4500 / api / users / john 404(未找到)

这些是我的文件;

router.js

Router.map(function() {

   this.resource('profile', { path: '/profile/:username' });
});

模型/ user.js的

import DS from 'ember-data';

export default DS.Model.extend({


    docType:DS.attr('string'),
    firstName:DS.attr('string'),


    userName:DS.attr('string'),
    password:DS.attr('string'),

    lastName:DS.attr('string'),
    mobileNo:DS.attr('string'),
    landNo:DS.attr('string'),
    address:DS.attr(
        {
        no:'string',
        street:'string',
        city:'string'
    }
    ),

    nicNo:DS.attr('string'),
    created_at:DS.attr('date'),
    updated_at:DS.attr('date')

});

路线/ profile.js

import Ember from 'ember';

export default Ember.Route.extend({

    model: function(params, transition) {
        return this.get('store').find('user', params.username);
    }

});

server.js

app.get('/api/users', function(req,res) {
    UserModel.find({},function(err,docs) {
        if(err) {
            res.send({error:err});
        }
        else {
            res.send({user:docs});
        }
    });
});

模板/ profile.hbs

<h2>Welcome user</h2>

{{#each item in model}}
{{item.userName}}
{{/each}}

1 个答案:

答案 0 :(得分:1)

您需要在应用程序中添加适配器并告诉它API的位置。

//app/adapters/application.js
import DS from 'ember-data';

export default DS.JSONAPIAdapter.extend({
  namespace: 'api' //All requests will be made to api/*
});

请注意我给你的例子是使用JSONAPI适配器(Ember 2.0),但是还有一个RESTAdapter,你必须为你选择合适的。