更新表单提交范围

时间:2014-07-30 03:28:09

标签: angularjs angularjs-scope

我有一个表单,提交后会将消息发送到我们的REST API。

如果成功,REST API将以与GET调用相同的JSON格式返回更新的值。

出于某种原因,即使在POST调用结束后,{{escalation.policy}}仍未在范围内更新。

var escalation = Escalation.save({
    policy: $scope.policy,
}).$promise.then(function (data) {
    $scope.escalation.push(data);
    alert(data);
},

3 个答案:

答案 0 :(得分:0)

您的REST请求是否会进入功能?尝试将错误函数放在then()旁边,并确保您的请求成功执行并回复。

答案 1 :(得分:0)

这是submit()

的当前完整代码段
$scope.submit = function () {

    var Escalation = $resource('/api/escalation');

    var escalation = Escalation.save({
        policy: $scope.policy,
    }).$promise.then(function (data) {
        $scope.escalation.push(data);
    }, function (error) {
        alert('This request could not be processed. Please try again later.');
        console.log(error);
    });
};

对于GET或POST,API将始终以以下格式返回:

{"policy":"Whatever the current/new policy is."}

唉,我仍然无法找出为什么视图不会更新。

答案 2 :(得分:0)

您需要在$scope.$apply()之后致电$scope.escalation.push(data);。这将导致新的$摘要强制视图更新,我的猜测是$promise.then在通常的摘要循环之外发生。