2015-05-09 65 views
1

以下功能从控制器功能中检索数据并将其保存到$scope.Details并重定向到付款视图。

$scope.pay = function() { 

      $http.get('api/Details/123').success(function (data) { 
       $scope.Details = data; 
      }); 

      $location.url('/payment'); 
     } 

此外,我初始化paymentForm范围以从上面检索$scope.Details具有的值。

$scope.paymentForm = { 
      FirstName: $scope.Details.FirstName, 
      LastName: $scope.Details.LastName, 
     PaymentAmount: $scope.Details.PaymentAmount 
     }; 

控制器功能:

[HttpGet] 
    [Route("api/Details/{id}")] 
    public Details Details(int id) 
    { 
     return new Details() 
     { 
      FirstName = "Test", 
      LastName = "Tester" 
     }; 
    } 

付款查看:

在姓氏和名字段
<label for="fname">First Name</label> 
<input id="firstname" type="text" ng-model="paymentForm.FirstName"> 
<label for="lname">Last Name</label> 
<input id="lastname" type="text" ng-model="paymentForm.LastName"> 

支付形式不填充值。任何人都可以请指出我在这里失踪了什么? 谢谢!

+2

我们在这里丢失了很多,比如你在哪个角度控制器中分配'$ scope.paymentForm',以及'ng-controller'指令在你的HTML视图中的位置。 – Claies

+0

此外,顺便说一下,您的输入元素不是(自己)关闭的,角度可能会有一些问题。 – SirDemon

回答

1

尝试在$scope.pay函数声明之上添加$scope.Details = {}。然后,这个代码应该完成这项工作。

+0

谢谢。我会尝试这些东西。 – Jyina

+0

我发现付款视图正在将值保存到范围变量paymentForm,当我键入表单上的控件。但是,当视图首先显示时,我无法在范围视图中填充默认值。不知何故,来自$ scope.Details的数据不会通过$ scope.paymentForm。我在Pay()函数中加载了$ scope.Details之后尝试了$ scope。$ apply()并且它没有工作。谢谢! – Jyina

+0

尝试创建一个初始的'$ scope.paymentForm = { 姓氏'', 姓氏:'', PaymentAmount:''}'然后成功修改'$ scope.paymentForm.FirstName = data.FirstName'并且像对于其他道具。你也不应该需要这样的$ scope.Details对象。 –

相关问题