小编Ada*_*sky的帖子

反应最终形式为什么meta.touched总是假的第三方组件?

使用final-form,我有第三方输入组件.我为它写了一个适配器.它也有验证器,但meta.touched总是错误的.我已经尝试将onFocus事件传播到输入,但没有运气.我究竟做错了什么?

const requiredValidator = value => (value ? undefined : 'is required');

const FloatingLabelInputAdapter = ({ input, meta, ...rest }) => (
  <FloatingLabelInput
    {...rest}
    onChange={(event) => input.onChange(event)}
    onFocus={(event) => input.onFocus(event)}
    errorText={meta.touched ? meta.error : ''}
  />
)

// used like this:

<Field
  component={FloatingLabelInputAdapter}
  label="Email"
  name="email"
  type="text"
  validate={requiredValidator}
/>

// and here's the render() of the component


  render() {
    const { children, label } = this.props;
    const { focussing, used } = this.state;

    console.log('FloatingLabelInput.props', this.props);

    return (
      <Group {...this.props} …
Run Code Online (Sandbox Code Playgroud)

reactjs final-form

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

为什么ember自动将不正确的控制器传递给视图实例?

我正在尝试在模板中添加视图.此模板定义了一个名为NewAssetLinkView的视图.在里面我正在添加TracksView.ember给出了例外:

未捕获错误:断言失败:Ember.CollectionView的内容必须实现Ember.Array.您传递了AssetLinksApp.NewAssetLinkController:ember538

似乎路由器正在尝试自动创建NewAssetLinksController并将其应用于TracksView,这是错误的.也许这样做是因为TracksView在NewAssetLinkView中声明了?(顺便说一下,NewAssetLinkController扩展了ObjectController)

我有一个TracksView应该使用的TracksController - 我如何让路由器不尝试自动创建并将错误的控制器与TracksView关联?

<script type="text/x-handlebars" data-template-name="new_asset_link_view">
    .....
    {{view AssetLinksApp.TracksView}}
</script>
Run Code Online (Sandbox Code Playgroud)

ember.js

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

如何构建您的Ember应用程序并考虑单元测试?

我以前没有用JS编写单元测试,我一般都在学习ember和javascript,所以请原谅它的简单性问题.

Ember应用程序的结构是首先为应用程序创建一个名称空间,如下所示:

MyApp = Ember.Application.create({...})
Run Code Online (Sandbox Code Playgroud)

然后你定义一个这样的模型:

MyApp.SomeModel = DS.Model.extend({...})
Run Code Online (Sandbox Code Playgroud)

但是当我正在编写单元测试时SomeModel,Ember.Application当你只是对模型进行单元测试时,实例化一个实例似乎是不对的,特别是对于所有的Router注入以及这种情况在幕后进行.

但是,要定义模型,您需要app namespace,MyApp.SomeModel..并且在Application实例化时创建应用程序名称空间(如果遵循Ember命名空间约定).

那么如何在不实例化应用程序的情况下对模型进行单元测试呢?你是否为app命名空间创建了一个模拟器?

我正在使用茉莉花顺便说一下.

ember.js

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

在ember v2路由器中为什么不是controllerFor()给出这个控制器的引用?

这是小提琴.

http://jsfiddle.net/inconduit/hf7XM/10/

重现问题的步骤:

  • 点击"转到帖子".
  • 单击"controllerFor"文本,它不会清除列表.
  • 单击全局引用文本,它将清除列表.

似乎返回的控制器引用controllerFor()实际上并不是PostsIndexController?这是为什么?

我在路径的setupController()钩子中攻击它以在App上设置对该控制器的全局引用,当我将该引用的内容设置为新数组时emptyList2(),列表在模板中正确清除.

我用controllerFor()错了吗?还是误解了它的回归?这是一个范围问题吗?请帮帮我.

App.PostsIndexRoute = Ember.Route.extend({
  setupController : function(controller,model) {
    controller.set('content',['one','two','three']);
    App.postsIndexController = controller;
  }
});

// receives the {{action}} from the template
App.PostsController = Ember.Controller.extend({
  emptyList : function() {
    this.controllerFor('postsIndex').set('content',Ember.A());
  },
  emptyList2 : function() {
    App.postsIndexController.set('content',Ember.A());
  }  
});
Run Code Online (Sandbox Code Playgroud)

ember.js ember-router

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

为什么我看到"加载路线时出错"与ember?

ember rc1,ember-data rev 12.所有其他路由正确加载,不确定为什么我看到这个错误.当我尝试访问show route即/ files/groups/5时会发生这种情况.索引路线呈现良好.

我已经粘贴了下面的堆栈跟踪,但它的信息量不大.我在这里做什么基本上是错的?

我的路线/控制器设置如下:

this.resource('files', { path : '/files' }, function() {      
  this.resource('groups', { path : '/groups' }, function() {      
    this.route('show', { path : '/:asset_link_group_id' });      
  });
});

AssetLinksApp.GroupsShowController = Ember.ArrayController.extend({
  content : Ember.A(),
  assetLinkGroup : null
});

AssetLinksApp.GroupsShowRoute = AssetLinksApp.AuthRequiredRoute.extend({
  setupController : function(controller,model) {    
  controller.set('content',model.get('asset_links'));
  controller.set('assetLinkGroup',model);
  },
  model : function(params) {    
    return AssetLinksApp.AssetLinkGroup.find(params.asset_link_group_id);
  }
});
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

加载路由时出错:TypeError {} exchange_vendor.js:12078

(匿名函数)exchange_vendor.js:12078 Ember.Router.reopenClass.defaultFailureHandler.setup exchange_vendor.js:35011 failure exchange_vendor.js:34448 objects.concat.context exchange_vendor.js:34497 invokeCallback exchange_vendor.js:17846 Promise.then exchange_vendor. js:17893 EventTarget.trigger exchange_vendor.js:17822 results exchange_vendor.js:17924 …

ember.js ember-data

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

标签 统计

ember.js ×4

ember-data ×1

ember-router ×1

final-form ×1

reactjs ×1