【问题标题】:Update Angular View after resource post资源发布后更新 Angular View
【发布时间】:2013-10-16 03:34:54
【问题描述】:

这是我的问题!我使用$resource API 将数据从客户端发布到服务器端。服务器端成功更新数据库后,我有点希望我的视图中的数据会更新。

我选择通过以下方式实现这一目标:

$scope.magazines = Magazines.query();

$scope.addMagazine = function() {
   var magazine = new Magazines({...payload data});
   Magazines.save(magazine, function() {
   $scope.magazines = Magazines.query();
});
};

Magazines 是一个定义好的 ngResrouce 工厂。

此代码运行良好。我唯一的问题是,每当我激活此功能(通过鼠标单击)时,视图都会闪烁(刷新)一次。这是一个非常糟糕的用户体验。

我想知道是否有任何其他方法可以在不刷新整个$scope.magazines 的情况下将新“杂志”添加到范围?

顺便说一下,后端的 api 会添加一些属性(例如创建时间或 id)。即使我编写代码来获取最后添加的项目(我想是不同的工厂方法),我仍然必须将它添加到 $scope.magazines 并且我不知道该怎么做。

有什么想法吗?

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    只需将push 新的Magazine 放到现有的$scope.magazines 上(假设它是一个数组)

    var magazine = new Magazines({...payload data});
    $scope.magazines.push(magazine);
    

    【讨论】:

    • 这确实有效!但似乎当我在成功回调中调用引用杂志时,它不包含我用new Magazines() 分配给它的任何附加信息。
    • 嗯...奇怪...首先验证 Magazines() 函数是否正确,然后...嗯...不确定。似乎问题就在那里。
    猜你喜欢
    • 1970-01-01
    • 2015-11-17
    • 1970-01-01
    • 2019-05-30
    • 2017-04-07
    • 2017-12-23
    • 2021-03-03
    • 1970-01-01
    • 2011-01-17
    相关资源
    最近更新 更多