node.js - 对象不知道它是一个 restangular 对象

标签 node.js angularjs restangular

我今天开始使用 Restangular 和 Node,在尝试将新用户添加到 Angular View 中的用户列表时遇到了问题。

view.html

<input type="text" ng-model="app.user.name" />
<input type="button" ng-click="app.addUser( app.user )" />

<ul>
    <li ng-repeat="user in app.users">
        <strong>{{ user.name }}</strong>    
        <input type="button" ng-click="app.removeUser( user )" />           
    </li>
</ul>

应用程序.js

var baseUsers = Restangular.all( 'users' );

app.getUsers = function()
{
    baseUsers.getList().then( function( res ) 
    {
        app.users = res;
    });     
};
app.getUsers();

app.addUser = function( newUser )
{               
    baseUsers.post( newUser ).then( function( res ) 
    {
        if( res.success == true )
        {  
            // add new user to scope array
            app.users.push( res.data ); // res.data contains the newly created user
        }       
    }); 
}

app.removeUser = function( oldUser )
{       
    //...
}

除了一个微小但烦人的问题外,以上一切都很好。

如果我添加新用户,用户名将添加到 View 中的列表中。但是,当我单击该用户旁边的删除按钮时,出现此错误:TypeError: Object #<Object> has no method 'remove' at app.removeUser .我的猜测是,当我按照我的方式将新创建的用户添加到范围数组时,它不知何故不知道它是一个 Restangular 对象。所以我认为问题出在app.users.push( res.data );

我该如何解决这个问题?

PS:当我刷新页面时,删除功能起作用了。因为它会通过 app.getUsers 再次自动获取所有项目,而不是通过 push 手动添加一项.

最佳答案

正如你所说。您插入数组的新用户根本没有被“重新规范化”。 查看 Restangular 中的 restangularizeElement 函数,并在将新接收的用户推送到用户数组之前对其进行初始化。

类似的东西:

if( res.success == true )
{  
    // add new user to scope array
    app.users.push(
      Restangular.restangularizeElement('', res.data, 'users')
    );
}

空字符串表示用户没有父资源。

关于node.js - 对象不知道它是一个 restangular 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22899736/

相关文章:

angularjs - 何时在 jasmine 中使用 spy 与 $httpBackend

angularjs - 如何将 promise 分配给范围

javascript - 你能在 Restangular 中构建一个包含多个变量的 URL 吗?

javascript - 如何缩小 JavaScript 缓冲区?

node.js - 是否可以在我的 AWS 账户中创建堆栈以及在客户端 AWS 账户中创建的资源(例如(ec2、vpc、rds))?

javascript - 如何在JS函数中调用AngularJS函数

javascript - AngularJS 错误 : fnPtr is not a function

node.js - 无法重新分配对象键值 - 我的语法是否不正确?

javascript - Node 获取帮助 - 获取 FetchError : invalid json response > body at <url> reason: > Unexpected end of JSON input

javascript - 保持外部 View 不变,而只是在 Angular-ui 中重新加载内部 View