标签: ember-data

如何知道为什么记录在余烬数据中是脏的

有没有办法知道为什么记录在ember数据中处于脏状态,我的意思是什么是已经改变的属性和关系.

调用findAll之后我有isDirty = true,我想调试为什么会这样.

非常感谢

ember.js ember-data

3
推荐指数
1
解决办法
3947
查看次数

Ember.js很多很多关系.如何访问数据

我们正在开发一个消息传递系统,允许用户向许多社交媒体帐户提交消息,这将导致每个帐户发布一个帖子.在我们的应用程序中,我们有帐户,消息和帖子.消息是我的内容的单个实例,然后可以作为帖子发送.

帐户可以包含许多消息.

消息可以绑定到许多帐户.消息可以有很多帖子.

帖子属于消息.

我们对数据建模如下:

Social.Account = DS.Model.extend({
    username: DS.attr('string'),
    messages: DS.hasMany('Social.Message')
});

Social.Message = DS.Model.extend({
    user_id: DS.attr('number'),
    text: DS.attr('string'),
    accounts: DS.hasMany('Social.Account'),
    posts: DS.hasMany('Social.Post')
});

Social.Post = DS.Model.extend({
    created: DS.attr('date'),
    text: DS.attr('string'),
    message: DS.belongsTo('Social.Message')
});
Run Code Online (Sandbox Code Playgroud)

和FIXTURE数据看起来像这样:

Social.Account.FIXTURES = [{
    id: 1,
    username: "commadelimited",
    messages: [1, 2]
}];

Social.Message.FIXTURES = [{
    id: 1,
    user_id: 1,
    text: 'This is message #1 sent by account #1',
    accounts: [1],
    posts: [1]
}, {
    id: 2,
    user_id: 1,
    text: 'This is message #2 sent by …
Run Code Online (Sandbox Code Playgroud)

ember.js ember-data

3
推荐指数
1
解决办法
1640
查看次数

Ember公司的数据.为many2many和one2many添加子记录

JSFiddle - http://jsfiddle.net/9gA4y/1/

我有以下型号:

contact => (many2many) => tags
contact => (one2many) => address
Run Code Online (Sandbox Code Playgroud)

Ember数据模型:

App.Contact = DS.Model.extend({
  name: attr('string'),  
  tags: hasMany('App.Tag'),
  addresses: hasMany('App.Address')
});

App.Address = DS.Model.extend({
  street: attr('string'),
  country: attr('string'),
  contacts: belongsTo('App.Contact')
})
App.Tag = DS.Model.extend({
  name: attr('string'),
  contacts: hasMany('App.Contact')
});
Run Code Online (Sandbox Code Playgroud)

我想出了添加新的联系人记录

  • 如何将现有的地址与新创建的联系人关联起来.(一个2多)
  • 如何将现有的标签与新创建的联系人关联起来.(很多2个)
  • 如何删除现有联系人中的关联.

ember.js ember-data

3
推荐指数
1
解决办法
1230
查看次数

Ember数据未使用夹具加载属于关系

我正在开发一个非常基本的ember应用程序,但我似乎无法让它显示belongssto模型.

我的用户模型:

News.User = DS.Model.extend({
    username: DS.attr('string'),
    items: DS.hasMany('News.Item')
});

News.User.FIXTURES = [
    {
        "id": 1,
        "username": "Bobba_Fett",
        "items": [1,2]
    }]
Run Code Online (Sandbox Code Playgroud)

我的商品型号:

'use strict';

News.Item = DS.Model.extend({
    title: DS.attr('string'),
    url: DS.attr('string'),
    domain: DS.attr('string'),
    points: DS.attr('number'),
    comments: DS.hasMany('News.Comment'),
    user: DS.belongsTo('News.User')
});

News.Item.FIXTURES = [
    {
        "id": 1,
        "title": "This is story 1",
        "url": "http://google.com",
        "domain": "google.com",
        "points": 45,
        "comments": [1,2,3],
        "user_id": 1
    }, 
    {
        "id": 2,
        "title": "This is another story",
        "url": "http://yahoo.com",
        "domain": "yahoo.com",
        "points": 30,
        "comments": [1,2,3],
        "user_id": 1 …
Run Code Online (Sandbox Code Playgroud)

ember.js ember-data

3
推荐指数
1
解决办法
4431
查看次数

Ember.js REST Ajax成功与错误

我想知道Ember.js RESTAdapter的ajax函数中有什么successerror做什么.

hash.success = function(json) {
  Ember.run(null, resolve, json);
};

hash.error = function(jqXHR, textStatus, errorThrown) {
  Ember.run(null, reject, jqXHR);
};
Run Code Online (Sandbox Code Playgroud)

我知道hash通过AJAX发送数据,但是扮演successerror扮演什么角色?我假设它们是基于成功或错误的AJAX响应运行的,对吧?它们是在调用AJAX之前设置的,作为回调?他们是如何工作的?

ajax ember.js ember-data

3
推荐指数
1
解决办法
2367
查看次数

Ember数据:如何在最近的Ember版本中指定REST适配器的使用?

我只想更改从夹具适配器获取数据到REST适配器.我在文档中找不到正确的语法...无论我尝试什么,都不会对REST接口执行JSON调用.

有人可以帮忙吗?

PS.当我只使用JQuery调用(return $.getJSON('http://localhost:3000/articles.json');)时,这是有效的,但如上所述,我想使用Ember REST适配器...

我的模特:

App.Article = DS.Model.extend({
  title: DS.attr('string'),
  author: DS.attr('string'),
  body: DS.attr('string')
});
Run Code Online (Sandbox Code Playgroud)

我的修复适配器:

App.Store = DS.Store.extend({
  revision: 12,
  adapter: 'DS.FixtureAdapter'
});
Run Code Online (Sandbox Code Playgroud)

我的REST适配器(不工作)

App.Store = DS.Store.extend({
  revision: 12,
  adapter: DS.RestAdapter.create({
    url: 'http://localhost:3000'
  })
});
Run Code Online (Sandbox Code Playgroud)

我的路线

App.ArticleRoute = Ember.Route.extend({
  model: function () {
    App.Article.find();
    //return $.getJSON('http://localhost:3000/articles.json');
  }

});
Run Code Online (Sandbox Code Playgroud)

ember.js ember-data

3
推荐指数
1
解决办法
5104
查看次数

如何在Ember.js中对hasMany项进行排序

我有这个结构:

App.Router.map(function() {
    this.resource('board', {path: '/board'}, function() {
        this.route('new', {path: '/new'});
        this.route('show', {path: '/show/:board_id'});
    });
});

App.Board = DS.Model.extend({
    title: DS.attr('string'),
    initialAmount: DS.attr('number'),
    initialDate: DS.attr('date'),
    boardItems: DS.hasMany('BoardItem'),
    _csrf: DS.attr()
});

App.BoardItem = DS.Model.extend({
    title: DS.attr('string'),
    income: DS.attr('number'),
    outcome: DS.attr('number'),
    date: DS.attr('date'),
    itemType: DS.attr('string'),
    board: DS.belongsTo('Board')
});

App.BoardShowRoute = Ember.Route.extend({
    model: function(params) {
        return this.store.find('board', params.board_id).sort();
    }
});
Run Code Online (Sandbox Code Playgroud)

在视图中,我列出了这样的董事会项目:

{{#each boardItems}}
Run Code Online (Sandbox Code Playgroud)

我想要做的是按日期排序boardItems,我找不到这样做的方法......任何想法?

谢谢!

javascript ember.js ember-data

3
推荐指数
1
解决办法
2409
查看次数

如何在ember-cli中扩展模型

它可以通过这种方式在"正常"的Ember中完成:

App.Person = DS.Model.extend({
  name: DS.attr('string')
});

App.Soldier = App.Person.extend({
  rank: DS.attr('string')
});
Run Code Online (Sandbox Code Playgroud)

我怎样才能在Ember-cli中实现这一目标?我不知道如何访问原始类型的Person.

ember.js ember-data ember-cli

3
推荐指数
1
解决办法
2363
查看次数

Ember.js计算属性过滤器hasMany数组

我试图过滤ember-data'hasMany'字段的内容.我的模型有一些子参数,我想在我的控制器上过滤到属性'childOptions'并在模板中显示

{{#each childOptions}}stuff{{/each}}
Run Code Online (Sandbox Code Playgroud)

当我把它放在我的控制器上时,它工作,每个迭代适当的值:

childOptions: Ember.computed.filterBy('model.subquestions', 'surveyQuestionType.name', 'childOption'),
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,没有显示任何内容.

childOptions: Ember.computed.filter('model.subquestions', function(subquestion) {
    return subquestion.get('surveyQuestionType.name') === 'childOption';
}),
Run Code Online (Sandbox Code Playgroud)

'surveyQuestionType'是DS.belongsTo,它存在于'subquestions'模型中,并且具有'name'属性.

我想理解为什么'filterBy'方法有效,而'filter'方法却没有(因此我将来可以使用'filter'来处理更复杂的查询).我认为这与promises和subquestion.get('property')我在filter函数中使用的语法有关.

编辑:

这是模型:

App.SurveyQuestion = DS.Model.extend(Ember.Validations.Mixin, {
    surveyQuestionType: DS.belongsTo('surveyQuestionType', { async: true }),
    display: DS.belongsTo('surveyQuestionDisplay', { async: true, inverse: 'surveyQuestion' }),
    sortOrder: DS.attr('number'),
    parent: DS.belongsTo('surveyQuestion', { async: true, inverse: 'subquestions' }),
    parentDependencyCriteria: DS.attr('string'),
    required: DS.attr('boolean'),
    surveySections: DS.hasMany('surveySectionQuestion', { async: true, inverse: 'surveyQuestion' }),
    subquestions: DS.hasMany('surveyQuestion', { async: true, inverse: 'parent' })
});
Run Code Online (Sandbox Code Playgroud)

ember.js ember-data

3
推荐指数
1
解决办法
2763
查看次数

如何防止ember-data发送请求到服务器?

我有一条路线,用户可以为您的帐户选择更多选项.但是当我进入这条路线时,ember会向我的API发送一个GET.我是如何避免这种情况的,因为我有我需要的信息.

我正在使用Ember JS 2x.

import Ember from 'ember';

export default Ember.Route.extend({
    searchPlaces: Ember.inject.service(),
    model() {
        return this.store.findAll('user');
    },
    afterModel(model) {
        let token = model.get('token');
        let places = model.get('places');

        this.set('places', places);
        this.set('token', token);
    }
});
Run Code Online (Sandbox Code Playgroud)

javascript ember.js ember-data

3
推荐指数
1
解决办法
501
查看次数

标签 统计

ember-data ×10

ember.js ×10

javascript ×2

ajax ×1

ember-cli ×1