小编djf*_*jfm的帖子

如何以角度形式发出JSONP POST请求?

官方文档中描述的$ http.jsonp方法似乎总是执行get请求:http://docs.angularjs.org/api/ng.$ http#methods_jsonp.

我已经尝试将配置选项设置为'POST'但它仍然发送一个GET:

$http.jsonp('/api/new?callback=JSON_CALLBACK', {method: 'POST'});
Run Code Online (Sandbox Code Playgroud)

我也试过设置一个数据参数,希望angular会切换到POST:

$http.jsonp('/api/new?callback=JSON_CALLBACK', {data: {stuff: true}});
Run Code Online (Sandbox Code Playgroud)

但它仍然没有:)

至于制作这样的帖子:

$http.post('/api/new?callback=JSON_CALLBACK')
Run Code Online (Sandbox Code Playgroud)

它确实显然是一个POST但是没有使用JSON_CALLBACK进行角度魔术,并产生以下JS错误:

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://xxx.yyy.zzz' is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud)

(API与应用程序不在同一服务器上,这是JSONP的重点).

谷歌在这个问题上最无益,通过角度来源阅读并不是最简单的任务.那么如何用angular创建一个JSONP POST请求呢?

javascript angularjs

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

我们如何在 useState 中使用 redux state 来设置初始值

我正在尝试使用 redux 值来使用 useState 设置 React 组件的初始状态。当我尝试设置 setIsStar 的状态时,它说 currentChannelName 为 null。我怎样才能避免这种情况?或者还有其他方法吗

const currentChannel = useSelector(state => state.channel.currentChannel);
const currentChannelName = currentChannel.name;
  
const [isStar, setIsStar] = useState({
    [currentChannelName]: true
});
Run Code Online (Sandbox Code Playgroud)

reactjs redux react-hooks

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

如何从提升精神中的C++ 11 lambda语义动作构建合成参数?

我正在尝试使用提升精神构建一个AST,并且当使用C++ 11 lambda表达式作为语义动作时,我一直在努力构建合成参数.

说我有一条规则:

qi::rule<char*,ascii::space_type,SomeStruct()> rule = some_parser[[](some_type val){/*code to build SomeStruct from val*/}];

我的lambda如何返回合成参数(SomeStruct)?按返回值?因为qi :: _ val在这种情况下不可用吗?(这对我来说有点模糊,如果这个问题没有很好地表达,那就很抱歉)

提前感谢任何正确方向的指针!

boost-spirit

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

在可变参数模板中使用大括号括起来的初始化列表?

我正在尝试在可变参数模板函数中使用大括号括起来的初始化列表,但是编译器抱怨...我是在问太多还是我做错了什么?

这最好通过示例来说明:

struct Bracy
{
    Bracy(int i, int j)
    {
    }
};

struct Test
{

    void consumeOne(int i)
    {
    }

    void consumeOne(const Bracy & bracy)
    {
    }

    void consume()
    {
    }

    template<typename T, typename ...Values>
    void consume(const T & first, Values... rest)
    {
        consumeOne(first);
        consume(rest...);
    }

    template<typename ...Values>
    Test(Values... values)
    {
        consume(values...);
    }
};

void testVariadics()
{
    Test(7,{1,2}); //I'd like {1,2} to be passed to consumeOne(const Bracy & bracy)
}
Run Code Online (Sandbox Code Playgroud)

GCC(4.7)说:

main.cpp:45:14: error: no matching function for call to ‘Test::Test(int, …
Run Code Online (Sandbox Code Playgroud)

c++ variadic-templates c++11

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

在描述...阻止之外使用RSpec的"期望"等

我正在构建一个Web应用程序自动化框架,旨在允许:

  • 当然,自动化任务
  • 轻松构建测试场景

我正在使用Capybara与浏览器进行通信,我有一个包含许多辅助函数的组件库(login_to_the_back_office,create_customer等).

现在我希望我的组件可以单独使用,也可以在RSpec测试中使用.这意味着我的组件(包含在库中)describe... it...默认情况下不会被块包围,但是当测试使用它们时它们会在某个时刻出现,因此它们应该尽可能多地使用expect和朋友.

我跟着rspec的.should在Ruby 2中失败了(在describe/it block之外)?启用should和它的工作(实际上只是要求rspec-expectations在我的情况下足够),但我无法弄清楚如何使期望工作.

我认为expect在这里定义了https://github.com/rspec/rspec-expectations/blob/master/lib/rspec/expectations/syntax.rb但我对Ruby的元魔法的了解太过限制,无法弄清楚如何让人期待我班上有空.

我已经尝试过RSpec::Expectations::Syntax在课堂上学习,但undefined method 'expect'每当我尝试使用它时我仍然会得到它.

我怎么能expect在外面使用describe... it...

ruby rspec

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

如何使用traits将大类中的代码拆分成几个文件?

来自Ruby,我很高兴发现PHP的特性.它们类似于ruby的模块系统,我喜欢它.

现在我已经阅读了很多帖子,说PHP特性是邪恶的,因为它们打破了OO设计,你不能像上课一样容易地测试它们等等.

我想知道是否使用特征将一个非常大的类分成更易读的部分是一个好主意.

这个类已经很大了,很可能会在没有重新分解的情况下长达数千行.

尽管方法可以按照关注进行分组,但它们经常需要相互调用,这让我想知道将类拆分为不同的类是否是最佳的.

为了说明,这是我提出的一个简化示例.

大班:

/**
* Class to refactorize
*/

class Tourist
{
    public function gotoRestaurant()
    {

    }

    public function gotoInternetCafe()
    {

    }

    public function checkEmails()
    {

    }

    public function meetGirlfriend()
    {
        if (Girlfriend::location() === 'restaurant')
        {
            $this->gotoRestaurant();
        }
        else
        {
            $this->checkEmails();
        }
    }

    public function checkEmailsAndMeetGirlfriend()
    {
        $this->checkEmails();
        $this->meetGirlfriend();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果对类进行重新分解,我会这样做:

/**
* Solution 1: using classes
*/

class ChoreDoer
{
    public function __construct(Tourist $t)
    {
        $this->tourist = $t;
    }

    public function checkEmails()
    {
        $mover …
Run Code Online (Sandbox Code Playgroud)

php traits

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

除了 diff 视图之外,是否有一种方法可以使 jest 的错误报告显示预期并一个接一个地收到?

我有限的大脑有时无法解释节点树数组的差异。

我发现jest以下输出很难理解:

Error: expect(received).toEqual(expected) // deep equality

- Expected  - 0
+ Received  + 5

@@ -1,10 +1,15 @@
  Array [
    Object {
      "children": Array [
        Object {
          "children": Array [],
+         "textValue": "",
+         "type": Symbol(WHITESPACE),
+       },
+       Object {
+         "children": Array [],
          "textValue": "Suivie d'une ligne de texte.",
          "type": Symbol(TEXT),
        },
      ],
      "textValue": "Une introduction",
Run Code Online (Sandbox Code Playgroud)

我确实理解它们,但这对我来说不是自然的表现,并且需要我付出很多努力。

有没有办法告诉jest报告深度相等检查失败与差异和/或还并排显示完整接收的对象和完整预期对象?

当对象不太大时,我理想的错误报告将是:

  1. 完整的预期代表性
  2. 完整收到的代表
  3. 差异表示

当我无法理解差异时,我当前的解决方法是使用调试器,但如果我可以避免这一步,那就太好了。

tdd jestjs ts-jest

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

在用C++编写的解释器中处理内置函数的好方法是什么?

我正在用C++编写一个解释器,用于我简洁设计的类似lisp的语言.这是为了娱乐和学习,所以我不会追求绝对的效率.但我想尝试一个非常干净的C++代码.我目前想知道如何实现内置函数.

基本上,我做的是这样的:

我有一个抽象基类DataObject,它只提供类型信息(目前是double,int,bool),并由特定的数据容器继承,如:

class DataObject
{
public:
    virtual const Type *type() = 0;
};

template<class T, const Type * myType>
class DataObjectValue : public DataObject
{
T value;
public:
    const Type *type(){return myType;}
};
Run Code Online (Sandbox Code Playgroud)

但是,当我想要表演时,我必须做以下事情:

DataObject * sum(DataObject *a, DataObject *b)
{
    if(a->type() == &Integer and b->type == &Integer)
    {
        DataObjectValue<int>* ia = dynamic_cast< DataObjectValue<int>* >(a);
        DataObjectValue<int>* ib = dynamic_cast< DataObjectValue<int>* >(b);
        return new DataObjectValue<int>(ia->value+ib->value);
    }
    else if(a->type() == &Real and b->type == &Real)
    {
        DataObjectValue<double>* ra = dynamic_cast< DataObjectValue<double>* …
Run Code Online (Sandbox Code Playgroud)

c++ interpreter

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

尝试构建任意深度树状结构的可变参数模板实例化中的无限递归

我正在做一些可变参数的实验,我偶然发现了一个我无法弄清楚解决方案的问题 - 基本上我正在尝试用任意数据类型的组件构建一个树 - 这里有一些代码:

template <class A, class B>
struct SeqExpression
{
    const A & first;
    const B & then;
};

template <class A, class B>
SeqExpression<A,B>
make_seq(const A & a, const B & b)
{
    return {a,b};
}

template <class A, class B, class ...T>
auto
make_seq(const A & first, const B & second, T ...rest) -> decltype(make_seq(make_seq(first,second),rest...))
{

    return make_seq(make_seq(first,second),rest...);
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试:

auto x = make_seq("X","Y",'z');
Run Code Online (Sandbox Code Playgroud)

但GCC(4.7)告诉我:

error: template instantiation depth exceeds maximum of 900 (use -ftemplate-depth= …
Run Code Online (Sandbox Code Playgroud)

c++ recursion templates variadic-templates c++11

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

Doctrine 2复合键和DQL连接

我正在尝试过滤出父组成复合主键的子项,父项称为主语,子项是课程:

学科:

class Subject
{
   /**
     * @var integer
     *
     * @Column(type="integer")
     * @Id
     * @GeneratedValue(strategy="NONE")
     */
    protected $id;

    /**
     * @var integer
     *
     * @Column(type="integer")
     * @Id
     */
    protected $customer_id;

    /**
     * @var ArrayCollection
     *
     * @OneToMany(targetEntity="Course", mappedBy="subject")
     */
    private $courses;

    ...
}
Run Code Online (Sandbox Code Playgroud)

课程:

class Course
{
    ...

    /**
     * @var Subject
     *
     * @ManyToOne(targetEntity="Subject", inversedBy="courses")
     * @JoinColumns({
     *   @JoinColumn(name="subject_id", referencedColumnName="id"),
     *   @JoinColumn(name="subject_customer_id", referencedColumnName="customer_id")
     * })
     */
    private $subject;
}
Run Code Online (Sandbox Code Playgroud)

我有"subject_id"和"subject_customer_id",我的问题是,当我写这篇文章时,我无法过滤掉没有加入主题的课程:

$this->em->createQuery("SELECT c FROM Course c WHERE c.subject = …
Run Code Online (Sandbox Code Playgroud)

php join composite-key dql doctrine-orm

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