标签: ember-cli

资源路径参数未传递给Route

不知何故,该参数user_id未传递给我的UserIndexRoute.怎么可能出错?

我得到的错误是

断言失败:您不能将undefinedid作为id 传递给商店的find方法

  • 请求是/ users/1
  • ID为1的用户确实存在于其模型夹具中
  • 我的应用程序中没有其他错误,用户路由正在运行并显示用户的fixturedata

router.js

var Router = Ember.Router.extend({
  location: DaappEmber2ENV.locationType
});

Router.map(function() {
  this.resource('users', function(){
    this.resource('user', { path:'/:user_id' }, function(){
        this.route('edit');
    });
    this.route('create');
  });
});
Run Code Online (Sandbox Code Playgroud)

导出默认路由器;

路由/用户/ index.js

export default Ember.Route.extend({
    model: function(params){
        Ember.Logger.debug('Params for user/index route:', params);
        return this.store.find('user', params.user_id);
    }
});
Run Code Online (Sandbox Code Playgroud)

ember.js ember-data ember-cli

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

Ember CLI - 使用npm安装后未定义Firebase

在命令行中执行以下步骤以使用节点安装Ember CLI,Firebase和EmberFire后,我收到一条错误消息,指出未在app/adapter/application.js中定义Firebase

npm install -g ember-cli

npm install -g bower

npm install -g phantomjs

ember new my-new-app

cd my-new-app

ember server
Run Code Online (Sandbox Code Playgroud)

此时我可以在localhost上看到我的ember应用程序的默认输出"Welcome to Ember.js":4200

npm install firebase
npm install —save ember-fire
ember generate adapter application
Run Code Online (Sandbox Code Playgroud)

然后在app/adapter/application.js中,删除"export default DS.RESTAdapter.extend({});"并粘贴"export default DS.FirebaseAdapter.extend({firebase:new Firebase('https://.firebaseio. com')});"使用我自己的firebase URL

ember server
Run Code Online (Sandbox Code Playgroud)

然后我在终端收到错误:

Serving on http://0.0.0.0:4200

lionworxs/adapters/application.js: line 4, col 17, 'Firebase' is not defined.

1 error

===== 1 JSHint Error

Path or pattern "vendor/firebase/firebase.js" did not match any files
Error: Path or pattern "vendor/firebase/firebase.js" did not …
Run Code Online (Sandbox Code Playgroud)

npm ember.js firebase emberfire ember-cli

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

如何在ember-simple-auth中保护本地存储并在浏览器关闭时清除它?

我在ember-cli应用程序中使用ember-simple-auth进行身份验证.似乎ember-simple-auth将会话存储在本地存储中,这似乎并不安全.

我有以下两个问题:

  1. 我可以看到会话数据,也可以修改它.如何保护此会话数据?
  2. 如何在浏览器关闭时清除此存储?关闭并重新打开浏览器后,我的会话及其数据仍处于活动状态.

谢谢.

ember.js ember-cli ember-simple-auth

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

ember.js,ember-cli:奥特莱斯没有正确嵌套

我遇到了一个问题,我无法在我的Ember CLI应用程序中正确显示嵌套插件.我想要的视图树如下:

  • application(所有资源的列表,其中client_availability为1)
  • - client_availabilities.index(client_availabilities列表)
  • - client_availability(个人client_availability)

这与Ember Starter Kit中的"application> posts.index> post"层次结构非常相似.我想要的行为是当我导航到client_availabilities.index时出现在"mainoutlet"中的client_availability列表,然后当我在"suboutlet"中调出一个单独的client_availability时,它会持续存在.

容易,对吗?这是默认行为以及为什么我们都喜欢Ember.但是,我似乎无法让它发挥作用.当我在client_availabilities.index中明确地指定我的命名子输出并单击单个client_availability时,任何插座中都没有显示任何内容:

场景1:在client_availabilities中渲染子输出

/app/template/application.hbs:

    {{link-to 'Client Availabilities' 'client_availabilities'}}

    {{outlet 'mainoutlet'}}
Run Code Online (Sandbox Code Playgroud)

/app/template/client-availabilities/index.hbs:

    {{outlet 'suboutlet'}}
Run Code Online (Sandbox Code Playgroud)

/app/routes/client-availabilities/index.js:

    import Ember from 'ember';

    export default Ember.Route.extend({

      renderTemplate: function(){
          this.render({
            into: "application",
            outlet: "mainoutlet"
          });
      },

      model: function() {
        return this.store.find('client_availability');
      }

    });
Run Code Online (Sandbox Code Playgroud)

/app/routes/client-availability.js:

    import Ember from 'ember';

    export default Ember.Route.extend({

      renderTemplate: function(){
          this.render('client_availability', {
            into: "client_availabilities",
            outlet: "suboutlet"
          });
      },

      model: function(params) {
        return this.store.find('client_availability', params.client_availability_id);
      }

    });
Run Code Online (Sandbox Code Playgroud)

或者,当我在应用程序中定位我的mainoutlet时,client_availability出现在"suboutlet"client_availabilities.index从"mainoutlet"中消失:

场景2:在应用程序内渲染子输出

/app/template/application.hbs:

    {{link-to 'Client Availabilities' …
Run Code Online (Sandbox Code Playgroud)

ember.js ember-cli

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

功能原型是否会在Ember 2中消失?

http://emberjs.com/blog/2015/05/13/ember-1-12-released.html上的最新Ember版本发布以来,似乎有一种新的setter和getter方法语法.

我们应该习惯这样做:

fullName: Ember.computed('firstName', 'lastName', function() {
  return this.get('firstName') + ' ' + this.get('lastName');
})
Run Code Online (Sandbox Code Playgroud)

代替:

fullName: function() {
  return this.get('firstName') + ' ' + this.get('lastName');
}.property('firstName', 'lastName')
Run Code Online (Sandbox Code Playgroud)

ember.js ember-cli

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

使用ember-data访问SoundCloud中的嵌套对象json

我正在使用soundCloud json为用户收藏的歌曲.

你可以在这里看到它

在此输入图像描述

我可以访问我的收藏夹曲目,但我无法访问用户ID和用户名.

这里我使用的代码返回我最喜欢的属性,我已经评论了无法返回用户属性的代码.

我在控制台中收到此错误"Uncaught TypeError:item.user.forEach不是函数"

我究竟做错了什么?它是访问我的用户属性的正确方法吗?

model: function(params) {
    var artist, favoriteListProxy, self;
    self = this;
    artist = params.artist;
    this.controllerFor('application').set('artistName', artist);
    favoriteListProxy = Ember.ArrayProxy.create({
        content: []
    });
    return new Ember.RSVP.Promise(function(resolve, reject) {
        return SC.get("/users/" + 'mannaio' + "/favorites", {limit: 40}, function(favorites) {
            if (favorites.length) {
                favorites.forEach(function(item, index, arr){
                    var favorite;
                    favorite = self.createFavoritelist(item, favoriteListProxy);
                    // return item.user.forEach(function(user, index, arr){
                    //     return user = self.createUser(user, favorite);
                    // });
                });
                favorites = favoriteListProxy.get('content')
                return resolve(favorites);
            }
        });
    });
}, …
Run Code Online (Sandbox Code Playgroud)

javascript json ember.js ember-data ember-cli

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

使用Ember-cli扩展{{link-to}}

这个问题类似于未答复的扩展链接.

我正在尝试扩展{{link-to}}帮助程序以输出其他属性绑定.但是,这些属性不会出现在我们的HTML中.继承人我们有:

//views/link-to.js (normally coffeescript)
import Ember from 'ember'

var LinkToView = Ember.LinkView.reopen({
  attributeBindings: ['data-toggle', 'data-placement', 'title']
});

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

渲染的输出是这样的:

define('app/views/link-to', ['exports', 'ember'], function (exports, Ember) {

  'use strict';

  var LinkToView;

  LinkToView = Ember['default'].LinkView.reopen({
    attributeBindings: ['data-toggle', 'data-placement', 'title']
  });

  exports['default'] = LinkToView;

});
Run Code Online (Sandbox Code Playgroud)

当它被调用及其渲染输出时:

// Any .hbs file
{{#link-to 'account' 
    class='header-link' 
    data-toggle='tooltip' 
    data-placement='right' 
    title='Account'
}}
    <span class="glyphicon glyphicon-cog" aria-hidden="true"></span>
{/link-to}}

// Rendered...
<a id="ember615" class="ember-view header-link" href="/account"     title="Account">             
    <span class="glyphicon glyphicon-cog" aria-hidden="true"></span>
</a>
Run Code Online (Sandbox Code Playgroud)

我们哪里出错了?我知道它与解析器或我们如何调用它有关. …

ember.js ember-cli

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

Ember-CLI无法解析Ember 2.0

我使用ember-cli v1.13.8创建了一个全新的项目.

我创建了一个新项目,然后为Ember 2.0调整了bower.json文件(它目前配置为Ember 1.13.8).运行后我收到以下错误bower install ember@2.0.0

bower ember-data#2.0.0          cached https://github.com/components/ember-data.git#2.0.0
bower ember-data#2.0.0        validate 2.0.0 against https://github.com/components/ember-data.git#2.0.0
bower                        ENOTFOUND Package ember@2.0.0 not found
Run Code Online (Sandbox Code Playgroud)

我也试过bower install ember#2.0.0并收到了这个错误(这里发布了部分消息):

bower ember#2.0.0              extract archive.tar.gz
bower ember#2.0.0              extract archive.tar.gz
bower ember#2.0.0         invalid-meta ember is missing "ignore" entry in bower. json
bower ember#2.0.0             resolved https://github.com/components/ember.git#2 .0.0
bower ember#2.0.0         invalid-meta ember is missing "ignore" entry in bower. json
bower ember#2.0.0             resolved https://github.com/components/ember.git#2 .0.0
bower                        ECONFLICT Unable to find suitable version for ember
Run Code Online (Sandbox Code Playgroud)

知道我的配置有什么问题吗?令人失望的是,它开箱即用.

安德鲁 …

ember.js bower ember-cli

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

EmberJS,如何为不同的"环境"管理不同的"配置变量"

emberjs标签下有几个问题,讨论如何管理不同的环境,但所有问题都只适用于非常具体的场景.

我正在寻找一种如何为不同环境设置不同配置变量的通用解决方案.

比方说,我的开发环境有一个API URL,生产环境有另一个API URL .

production_api_url: "http://production.server.com/api"
development_api_url: "http://development.server.com/api"
Run Code Online (Sandbox Code Playgroud)

在我的适配器中,我想使用适当的API URL:

# /app/adapters/application.js
import ActiveModelAdapter from 'active-model-adapter';

export default ActiveModelAdapter.extend({
  namespace: 'api',
  host: [[API_URL]]
});
Run Code Online (Sandbox Code Playgroud)

javascript environments ember.js ember-cli ember.js-2

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

将moment.js与Ember,Ember-CLI一起使用

我一直在尝试使用Ember-cli让moment.js库与Ember应用程序一起工作.注意我对ES2015相当新.

Ember 2.2.0 Ember-cli 1.13.13

我的ember-cli-build

/*jshint node:true*/
/* global require, module */
var EmberApp = require('ember-cli/lib/broccoli/ember-app');

module.exports = function(defaults) {
    var app = new EmberApp(defaults, {
        //options
    });

    app.import('bower_components/moment/moment.js');

    return app.toTree();
};
Run Code Online (Sandbox Code Playgroud)

和我的.jshintrc

"predef": [
    "document",
    "window",
    "-Promise",
      "moment"
  ],
Run Code Online (Sandbox Code Playgroud)

和我的控制器

/* global moment:true */
import Ember from 'ember';

export default Ember.Controller.extend({
    firstName: null,
    lastName: null,
    day: function () {
        return moment('Dec 25, 1995');
    }.property()
});
Run Code Online (Sandbox Code Playgroud)

我总是得到一个"时刻"尚未定义的错误.我读到最新的moment.js已经停止产生一个全球性的"时刻",但我不知道该怎么做.

构建工作.如果我拉出生成的vendor.js,我可以在其中看到moment.js文件的完整内容.但是当我在chrome调试器中查看vendor.js时,内容被省略.我不确定这是否是由于一些优化.

ember.js ember-cli

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