标签: ember-cli

如何从Ember CLI中的Route访问Ember Model

也许使用常规的Ember应用程序,将所有代码放在app.js中对我来说会更容易.但由于我使用的是Ember CLI,因此无法在我的路线中访问我的模型.我还在尝试学习如何使用Ember CLI,所以请帮帮我.

因为我只想激活AJAX调用并在我的UI上渲染数据,所以我下载并将Ember Model库添加到我的项目中.我认为不需要使用Ember Data.这是我所指的Ember Model文档:https://github.com/ebryn/ember-model#example-usage.话虽如此,这是Ember CLI提出的我的目录结构:

|-app    
  |-controllers
  | |-customers.js
  |-models    
  | |-customers.js
  |-routes    
  | |-customers.js
  |-templates    
  | |-customers.hbs
  |-app.js
  |-index.html
  |-main.js
  |-router.js
Run Code Online (Sandbox Code Playgroud)

这是我只关注问题的实际项目结构的更简单的表示.正如Ember Model文档中提出的,我将以下代码添加到我的Customers模型(model\customers.js)中:

export default Ember.Model.extend({
    nameid: attr(),
    firstname: attr(),
    middlename: attr(),
    lastname: attr(),        
    prefixname: attr(),
    suffixname: attr()
});

this.url = "http://restapi/api/customers";
this.adapter = Ember.RESTAdapter.create();
Run Code Online (Sandbox Code Playgroud)

请注意,我必须执行"export default"而不是"App.Customers = Ember.Model.extend ...".这是Ember CLI惯例.因此,当我尝试访问我在Customers Route中创建的模型时,我收到错误"加载路径时出错:ReferenceError:App未定义"..

客户路线代码:

export default Ember.Route.extend({
    model: function () {
        App.Customers.find();
    },

    actions: {
        addnew: function(){
            //logic of saving edited customer
            alert('customer …
Run Code Online (Sandbox Code Playgroud)

ember.js ember-model ember-cli

8
推荐指数
1
解决办法
6563
查看次数

基于承诺的财产Ember

我有一个控制器,有一个searchQuery和建议属性.建议来自AJAX请求.如何在控制器中将建议属性作为承诺?

app/controllers/application.js

import Ember from 'ember';

const { computed, $ } = Ember;

export default Ember.Controller.extend({
  searchQuery: '',
  suggestions: computed('searchQuery', function() {
    return $.getJSON(`songs/search.json?q=${this.get('searchQuery')}`);
  })
});
Run Code Online (Sandbox Code Playgroud)

javascript promise ember.js ember-cli

7
推荐指数
1
解决办法
2595
查看次数

如何将ember-cli app部署到nginx上

我一直在尝试将生产模式中的ember-cli应用程序部署到nginx服务器上.我已经回顾了ember-cli文档并查看了其他类似的问题,例如(如何在github页面上部署使用ember-cli开发的Ember.js应用程序?) - 这些似乎表明在/中设置ENV.baseURL变量app/config/environment.js应解决问题,但我找不到适合我的值.

生成的文件ember build --environment production位于/ Users/gordon/src/app/dist

nginx配置看起来像:

server {
   listen       4200 ssl;
   server_name  localhost;

   ssl_certificate      /Users/gordon/src/app/server.crt;
   ssl_certificate_key  /Users/gordon/src/app/server.key;

   ssl_session_cache    shared:SSL:1m;
   ssl_session_timeout  5m;

   ssl_ciphers  HIGH:!aNULL:!MD5;
   ssl_prefer_server_ciphers  on;
   root /Users/gordon/src/app/dist/;

   location / {
       # index  index.html;
     try_files $uri $uri/ /index.html?/$request_uri;

   }
}
Run Code Online (Sandbox Code Playgroud)

在Users/gordon/src/app/config/environment.js中如果我将ENV.baseURL保留为默认值,我会在浏览器控制台中显示以下错误...

Uncaught TypeError: undefined is not a function vendor-70567c507a348c9884b7aba3ccaae1fd.js:14
Uncaught ReferenceError: DS is not defined
Run Code Online (Sandbox Code Playgroud)

...如果我将它设置为/ Users/gordon/src/app /,/ Users/gordon/src/app/dist /或/ Users/gordon/src/app/dist我得到

Uncaught SyntaxError: Unexpected token < :4200/Users/gordon/src/sellthru/dist/assets/vendor-70567c507a348c9884b7aba3ccaae1fd.js:1
Uncaught SyntaxError: Unexpected token < :4200/Users/gordon/src/sellthru/dist/assets/sellthru-app-4b7e6077c7df38b31e70e32056d7d7aa.js:1
Uncaught …
Run Code Online (Sandbox Code Playgroud)

ember.js ember-cli

7
推荐指数
1
解决办法
4833
查看次数

在Ember CLI中未按预期编译到app.css中的CSS文件?

Ember CLI文档说明了/app/styles以下文件夹:

包含样式表,无论是SASS,LESS,Stylus,Compass还是普通CSS(尽管只允许使用一种类型,请参阅资产编译).这些都编译成app.css.

我有以下文件/app/styles:app.css,one.css,two.css.

我希望在启动服务器时,在文件夹/ dist/assets中会有文件调用appName.css,内容将是所有三个文件的串联.相反,只有app.css文件的内容.所以我@import在app.css中解决了这个问题:

@import url("one.css");
@import url("two.css");
Run Code Online (Sandbox Code Playgroud)

这与0.0.46一起使用,虽然不是最佳的,因为对服务器提出了更多请求.现在我更新到0.1.1和文件one.css,two.css不再复制到/dist/assets文件夹.

但主要问题是:如何实现文件/app/styles夹中所有css文件的串联?我错过了一些基本的东西,或者是否需要包含一些命令Brocfile.js

更新

以下是Brocfile.js显示我们如何连接CSS文件的片段:

var concat = require('broccoli-concat');
var cleanCSS = require('broccoli-clean-css');

var concatenatedCss = concat('app/styles', {
    inputFiles: [
        'reset.css',
        'common.css',
        'layout.css',
        ...
    ],
    outputFile: '/assets/appName.css',
    wrapInFunction: false
});

if (app.env === 'production') {
    concatenatedCss = cleanCSS(concatenatedCss, {restructuring: false});
}

module.exports = app.toTree([concatenatedCss]);
Run Code Online (Sandbox Code Playgroud)

我们手动将文件添加到inputFiles数组.

ember.js ember-cli

7
推荐指数
1
解决办法
3749
查看次数

导入可能不存在的es6模块

只是说我创建了一个与其他用户共享的插件,我需要导入ember-data.

import DS from 'ember-data';
Run Code Online (Sandbox Code Playgroud)

如果它可能不存在于客户端代码中,我该如何导入它.基本上我需要一个条件来检查ember-data是否可用,如果是这样导入并执行某些操作,否则不要这样做.

if(ember data exists) {
  //do something
}
Run Code Online (Sandbox Code Playgroud)

ember-cli

7
推荐指数
1
解决办法
383
查看次数

无法克隆Git存储库 - "对象函数......没有方法'hasMagic'"

我正在尝试克隆一个Git存储库,其中包含一个Ember-CLI项目(https://github.com/tgfischer/StockMarketApp).当我这样做时,我收到以下错误:

tom@tom-fischer:~/Desktop/StockMarketApp$ ember server
version: 0.2.0-beta.1
Could not find watchman, falling back to NodeWatcher for file system events
Livereload server on port 35729
Serving on http://0.0.0.0:4200/
Object function glob(pattern, options, cb) {
  if (typeof options === "function") cb = options, options = {}
  if (!options) options = {}

  if (typeof options === "number") {
    deprecated()
    return
  }

  var g = new Glob(pattern, options, cb)
  return g.sync ? g.found : g
} has no method 'hasMagic'
TypeError: Object function …
Run Code Online (Sandbox Code Playgroud)

ember-cli

7
推荐指数
1
解决办法
1450
查看次数

从ember-cli中的vendor.js中排除jQuery

在构建仅用于生产时,是否可以从ember-cli中的vendor.js中排除jQuery依赖项?我想在我的网站中单独包含它.

ember.js ember-cli

7
推荐指数
2
解决办法
1656
查看次数

在Ember.js Handlebar模板表达式中呈现动态生成的{{link-to}}链接

我有一个Ember模板,它使用Handlebar表达式渲染文本,即{{caption}}.正在呈现的文本中包含主题标签,每个标签都需要点击,然后转到Ember应用程序中的特定路径.

我创建了一个帮助程序来解析文本,并用一个链接指向必要的路径并用hashtag替换每个hashtag,所以现在Handlebar表达式如下所示:{{clickable-hashtags caption}}.但是,帮助程序使用常规HTML <a href>标记创建链接,并使用Ember.Handlebars.SafeString返回.

我想{{#link-to}}为每个hashtag 使用Ember的帮助方法,但似乎无法弄清楚如何做到这一点.Handlebars是否可以解析link-to模板{{caption}}表达式中的标签?

javascript handlebars.js ember.js ember-cli

7
推荐指数
1
解决办法
1146
查看次数

我可以使用'ember generate'为现有的'对象'生成测试吗?

我有一个迁移到Ember CLI的Ember EAK项目,测试编码为mocha/chai测试运行器,虽然我已经安装了ember-cli-mocha,但它在迁移项目中无法正常运行.我可以使用'ember generate'和mocha蓝图来生成新的测试存根,然后我可以进入并或多或少地重新实现我在EAK中的测试吗?

所以我想使用'ember generate'来为现有路由,控制器和视图生成测试,而不是一起生成新的存根对象和测试.

mocha.js ember.js ember-cli

7
推荐指数
2
解决办法
3021
查看次数

ember cli在ubuntu上找不到守望者,只有mac的解决方案不适用于ubuntu

恩惠-v

版本:2.3.0

无法启动守望者; 回退到NodeWatcher以获取文件系统事件.

访问http://www.ember-cli.com/user-guide/#watchman了解更多信息.

节点:5.0.0

os:linux x64


http://www.ember-cli.com/user-guide/#watchman只有mac的解决方案不适用于ubuntu

ubuntu ember.js ember-cli watchman

7
推荐指数
1
解决办法
1396
查看次数