小编iro*_*ber的帖子

是否有一种惯用的方法来测试嵌套的状态分支?

因此,假设我有一个具有多个分支的reducer,但每个分支都足够相似,可以使用工厂函数生成.所以,我创建了一个:

import { combineReducers } from 'redux'

const createReducerScope = scopeName => {
  const scope = scopeName.toUpperCase()

  const contents = (state = {}, action) => {
    switch (action.type) {
      case `${scope}_INSERT`:
        return { ...state, [action.id]: action.item }
      default:
        return state
    }
  }

  const meta = (state = {}, action) => {
    switch (action.type) {
      case `${scope}_REQUEST`:
        return { ...state, requesting: true }
      case `${scope}_REQUEST_FAILURE`:
        return {
          ...state,
          requesting: false,
          errorMessage: String(action.error)
        }
      case `${scope}_REQUEST_SUCCESS`:
        return {
          ...state,
          requesting: false,
          errorMessage: …
Run Code Online (Sandbox Code Playgroud)

javascript redux

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

Backbone.js fetch()ajax错误

我正在为一个项目组建一个基本的CRUD系统,我们决定捆绑Backbone.js和CoffeeScript来抽象更多我们的JavaScript功能.学习曲线对我来说非常陡峭,因为我不是一个JS专业人士.

目前,我只是想拉一记.任何记录.因此,在我前进之前,我已经装配了一条虚拟路线,通过JSON提供"产品"记录集,以了解它是如何呈现的.

  window.Product = Backbone.Model.extend
    initialize: -> console.log this
  window.Products = Backbone.Collection.extend
    model: Product
    initialize: -> console.log this
    url: '/dummy'
Run Code Online (Sandbox Code Playgroud)

所以,在控制台中,我输入:

product = new Product()
Run Code Online (Sandbox Code Playgroud)

它似乎使产品很好.但是当我键入:

product.fetch()
Run Code Online (Sandbox Code Playgroud)

它返回:

TypeError: Cannot call method 'ajax' of undefined
Run Code Online (Sandbox Code Playgroud)

我和Collection尝试过同样的事情.

products = new Products()
products.fetch()
TypeError: Cannot call method 'ajax' of undefined
Run Code Online (Sandbox Code Playgroud)

我已经使其他部分(查看渲染等)工作得很好,但这个ajax错误反复出现在我身上.我花了几个小时查看不同的文档(包括官方文档,以及我可以从wiki中查找的所有信息),在纯JavaScript和CoffeeScript中尝试代码,实现不同的范围(有/没有窗口命名空间)等等.谷歌上没有任何东西.

这一定是我应该知道的非常简单的事情,但我无法弄清楚我的生活.或者它是我错过的文档中的一个位置.谁能告诉我我做错了什么?

coffeescript backbone.js ruby-on-rails-3

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