标签: ember-cli

MODEL_FACTORY_INJECTIONS和夹具

使用ember-cli生成项目MODEL_FACTORY_INJECTIONS时,默认情况下您将启用该项目.

但由于某种原因,它会破坏夹具装载:

适配器/应用

export default DS.FixtureAdapter.extend({});
Run Code Online (Sandbox Code Playgroud)

车型/笔记

var Note = DS.Model.extend({
  text: DS.attr('string'),
});

Note.FIXTURES = [
  {
    id: 1,
    text: 'text1'
  },
];

export default Note;
Run Code Online (Sandbox Code Playgroud)

路线/指数

export default Ember.Route.extend({
  model: function() {
    return this.store.find('note');
  }
});
Run Code Online (Sandbox Code Playgroud)

随着MODEL_FACTORY_INJECTIONS我得到

加载路径时出错:错误:断言失败:无法找到模型类型注释的固定装置@ model:注意:

没有一切按预期工作.

也许我错过了什么?或者这只是一个错误?

ember.js ember-data ember-cli

2
推荐指数
1
解决办法
2404
查看次数

ember-cli如何让brocolli忽略某些文件的变化

我正在使用ember-cli v0.0.47,我希望能够让brocolli在触发构建时忽略某些文件的更改.

我正在使用vim作为创作工具,并且我将其配置为在编辑器失去焦点时保存所有打开的文件(这包括交换和撤消文件).这有一个令人遗憾的副作用,导致我的ember-cli项目进行了大量不必要的重建,因为brocolli检测到文件已被更改并继续重建.

因此,我希望能够以某种方式告诉brocolli在某些文件被更改时不会触发项目的重建.有没有办法实现这个目标?

vim ember.js ember-cli

2
推荐指数
1
解决办法
493
查看次数

指定默认的余烬路线而不会破坏路由器

我正在尝试让我的应用程序/myroute/在应用程序加载时自动重定向到路由。我所做的是将以下内容添加到我的app / router / application.js中

app / routes / application.js

import Ember from 'ember';

export default Ember.Route.extend({
  redirect: function() {
    this.transitionTo('myroute');
  }
});
Run Code Online (Sandbox Code Playgroud)

这有效,但是问题是我的URL不再起作用。

当我去http://host/#/myroute2它仍然去我的路线

正确的做法是什么?

ember.js ember-cli

2
推荐指数
1
解决办法
783
查看次数

Ember Cli和ASP.NET webapi - 挂起数据

我有一个在localhost:4200上运行的Ember Cli项目和一个在localhost:56967上运行的asp.net webapi项目.两个项目分别运行良好:我可以启动我的Ember应用程序并测试几条路线,看起来很好,我可以访问我的api(例如:api/products),我看到了我的回复.

我遇到的问题是彼此挂起两件事.

适配器

 export default DS.RESTAdapter.extend({
      host: 'http://localhost:56967',
      namespace: 'api'
 });
Run Code Online (Sandbox Code Playgroud)

我第一次遇到一些Cors问题,但是我在我的Ember应用程序中修复了contentSecurityPolicy,并在我的Api上启用了Cors.

当我进入产品路线时,我可以看到对Api的请求被接受,Api回复了Json的回答.但是,我没有序列化模型,所以我可以在我的Ember应用程序中使用它.

这是我对Api的回应

  [{"ProductId":1,"Name":"Product 1","Description":"Category 1"},{"ProductId":2,"Name":"Product 2","Description":"Category 2"},{"ProductId":3,"Name":"Product 3","Description":"Category 3"}] 
Run Code Online (Sandbox Code Playgroud)

产品的Ember模型

export default DS.Model.extend({
    name : DS.attr('string'),
    description: DS.attr('string')
});
Run Code Online (Sandbox Code Playgroud)

Asp.net产品型号:

public class Product
{
    public int ProductId { get; set; }
    [Required]
    public string Name { get; set; }
    public string Description { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我知道我必须序列化Api响应,使其成为我的Ember App的"可读"Json.现在的问题是:更改Api的格式是否更好?或者做一个好的序列化器?我如何制作序列化器?很难找到一些体面的教程.我尝试了这个,但这不起作用:

 export default DS.RESTSerializer.extend({
      primaryKey: 'productId'
  });
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

  Error while processing route: products No model was found for …
Run Code Online (Sandbox Code Playgroud)

json ember.js asp.net-web-api ember-data ember-cli

2
推荐指数
1
解决办法
1051
查看次数

emberjs和ember-cli之间的区别

ember-cli为rails中的这些添加了类似的生成器,我想问一下这两个库/框架之间是否有任何区别.

ember.js ember-cli

2
推荐指数
1
解决办法
1366
查看次数

Ember控制器上的单元测试计算属性

来自我的controllers/cart.js的代码:

export default Ember.Controller.extend({
  cartTotal: Ember.computed('model.@each.subTotal', function() {
    return this.model.reduce(function(subTotal, product) {
      var total = subTotal + product.get('subTotal');
      return total;
    }, 0);
  })
)};
Run Code Online (Sandbox Code Playgroud)

此计算属性循环遍历模型中的所有元素,添加subTotal属性的所有值,返回a cart total.

购物车,test.js

import { moduleFor, test } from 'ember-qunit';
import Ember from 'ember';

moduleFor('controller:cart', {
  // Specify the other units that are required for this test.
  // needs: ['controller:foo']
});

test('it exists', function(assert) {
  var controller = this.subject();
  assert.ok(controller);
});

test('cartTotal function exists', function(assert) {
  var controller = this.subject(); …
Run Code Online (Sandbox Code Playgroud)

unit-testing qunit ember.js ember-cli ember-qunit

2
推荐指数
1
解决办法
2152
查看次数

Ember-cli默认为组件生成集成测试

我有一个0.2.7版本的项目,并生成组件测试作为单元测试.我的新项目默认创建集成测试.有没有办法改变它?

ember.js ember-cli

2
推荐指数
1
解决办法
1544
查看次数

如何阻止内部动作冒泡到外部链接到帮助器?

点击"编辑"触发动作"编辑":

  {{#link-to "pages.show" page class="list-group-item"}}
    {{page.name}}
    <span class="badge" {{action "edit" page preventDefault=false}}>edit</span>
  {{/link-to}}
Run Code Online (Sandbox Code Playgroud)

然后触发动作(例如打开编辑页面),但是在下一秒,链接到重定向完成,所以我最终在"pages.show"路线上.

预期:仅调用"编辑"操作,并且单击事件(?)不会"冒泡"到链接到帮助程序.

使用侧注 Ember 2.2,上面的模板是组件的一部分.

PS:我认为在一个动作中使用preventDefault = false会停止这种行为 - 但很明显,链接帮助器从其他地方获取信息.

ember.js ember-cli htmlbars

2
推荐指数
1
解决办法
1399
查看次数

Ember-cli-dependency-checker - 版本无效:*

我正在尝试升级项目的devDependencies并遇到此错误.我无法弄清楚为什么我会收到这个错误.它认为什么包无效?本身?我是否必须查看每个package.json?

[folatt@ArkOS_Dev genesis]$ sudo ember update
Invalid Version: *
TypeError: Invalid Version: *
    at new SemVer (/home/folatt/workspace/arkos/genesis/node_modules/semver/semver.js:295:11)
    at Range.test (/home/folatt/workspace/arkos/genesis/node_modules/semver/semver.js:1049:15)
    at Function.satisfies (/home/folatt/workspace/arkos/genesis/node_modules/semver/semver.js:1098:16)
    at Function.VersionChecker.satisfies (/home/folatt/workspace/arkos/genesis/node_modules/ember-cli-dependency-checker/lib/version-checker.js:31:17)
    at Package.updateRequired (/home/folatt/workspace/arkos/genesis/node_modules/ember-cli-dependency-checker/lib/package.js:21:26)
    at Package.init (/home/folatt/workspace/arkos/genesis/node_modules/ember-cli-dependency-checker/lib/package.js:15:27)
    at new Package (/home/folatt/workspace/arkos/genesis/node_modules/ember-cli-dependency-checker/lib/package.js:4:13)
    at EmberCLIDependencyChecker.<anonymous> (/home/folatt/workspace/arkos/genesis/node_modules/ember-cli-dependency-checker/lib/dependency-checker.js:126:12)
    at Array.map (native)
    at EmberCLIDependencyChecker.readDependencies (/home/folatt/workspace/arkos/genesis/node_modules/ember-cli-dependency-checker/lib/dependency-checker.js:122:36)
Run Code Online (Sandbox Code Playgroud)

的package.json

{
  "author": "arkOS",
  "description": "Web management frontend for arkOS servers",
  "devDependencies": {
    "broccoli-asset-rev": "^2.4.6",
    "broccoli-funnel": "^1.0.6",
    "ember-ajax": "^2.0.1",
    "ember-cli": "^2.7.0",
    "ember-cli-app-version": "^1.0.0",
    "ember-cli-babel": "^5.1.6",
    "ember-cli-content-security-policy": "^0.5.0",
    "ember-cli-dependency-checker": "^1.3.0",
    "ember-cli-htmlbars": "^1.0.1",
    "ember-cli-htmlbars-inline-precompile": "^0.3.1",
    "ember-cli-ic-ajax": "0.2.5", …
Run Code Online (Sandbox Code Playgroud)

dependencies json ember.js ember-cli

2
推荐指数
1
解决办法
1926
查看次数

为控制器创建基类以在Ember应用程序中扩展/继承

我正在尝试为我的控制器创建一个基类,因此可以避免重复代码。

这里的问题是,每当我尝试使用它时,都会抛出错误。

“断言失败:您试图定义a {{link-to "inventory"}},但未传递生成其动态分段所需的参数。找不到controllers/base-inventoryfrontend/controllers/inventory” 导入的模块

为了创建我的基本控制器,我使用了ember cli,这就是我所做的:

ember g controller base-inventory
Run Code Online (Sandbox Code Playgroud)

然后

// base-inventory.js
const BaseInventory = Ember.Controller.extend({
   //my code...
});
export default BaseInventory;
Run Code Online (Sandbox Code Playgroud)

在我想使用该基类的控制器中,执行了以下操作

import BaseInventory from 'controllers/base-inventory';
// also tried import { BaseInventory } from 'controllers/base-inventory';
// and  export default new BaseInventory({});
export default BaseInventory.extend({
    //more code here...
});
Run Code Online (Sandbox Code Playgroud)

有什么想法我做错了吗?

我不打算使用mixins,因为一开始它似乎并不是最好的选择。我不太确定mixin提供的共享内容。我认为这不是问题,因为我正在尝试在控制器中进行继承,但是正如我所说的,我不确定它的真正工作原理。

如果无法按照我想的方式做,我将编写一个mixin。

javascript ember.js ember-cli

2
推荐指数
1
解决办法
665
查看次数