在AngularJS中创建新资源后无法获取新的对象属性

时间:2013-08-11 15:14:07

标签: javascript angularjs jasmine angularjs-resource

我正在尝试在AngularJS中创建Person类型的新资源。创建资源后,我想获取新的资源ID(由服务器返回)。

it('should get the new Person id after add', inject(function($httpBackend, Person) {
        $httpBackend.whenPOST('http://api.example.com/Persons').respond({ "id" : 32});

        var newPerson = new Person();
        newPerson.$save();
        expect(newPerson.id).toEquals(32);

 }));

我得到"预计未定义为32"在卡玛。

我认为我的代码段与信用卡代码段末尾的$Resource documentation提供的内容非常接近。

我做错了什么想法?

1 个答案:

答案 0 :(得分:0)

您需要致电$httpBackend.flush()来刷新请求。

试试这个:

it('should get the new Person id after add', inject(function($httpBackend, Person) {
        $httpBackend.whenPOST('http://api.example.com/Persons').respond({ "id" : 32});

        var newPerson = new Person();
        newPerson.$save();

        $httpBackend.flush();
        expect(newPerson.id).toEquals(32);
 }));