我将为您进行翻译:我正在使用Angular.js与Rails作为后端,但在视图中更新作用域变量的值时遇到了问题。这里我正在尝试创建一种购物车类似的东西。
HTML代码:
更新后的值在提示框中是正确的,但视图没有更新该值,请帮忙解决。先谢谢了。
HTML代码:
<div class="modal hide fade" id="orderForm">
<div class="modal-header">
<h3>
Please enter your location details <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</h3>
</div>
<div class="modal-body scrollable">
<form accept-charset="UTF-8" class="simple_form form-horizontal" name="orderForm" novalidate="novalidate" ng-submit="validateAndSubmit(orderForm)" id="order_form">
<div class="control-group string optional order_full_name">
<label class="string optional control-label" for="order_full_name">Full name</label>
<div class="controls">
<input class="string optional required " id="order_full_name" name="full_name" ng-model="full_name" placeholder="eg. Kapil Sharma" size="50" type="text" value="">
</div>
</div>
</div>
<div class="modal-footer">
<a href="" data-dismiss="modal" aria-hidden="true" class="btn">
Close
</a>
<button type="submit" class="btn btn-success"> <i class="icon-ok"></i> Place order</button>
<%# end %>
</form>
</div>
这是一个Bootstrap模态窗口,可以通过$('#orderForm').modal('show');
进行调用。
以下是我的JavaScript Angular代码。
$scope.validateAndSubmit = function(form){
if(form.$valid){
var formData = $('#order_form').serializeObject();;
$http.post('/create_order',{'order': formData})
.success(function(data,status){
$scope.currentOrder = data;
$('#orderForm').modal('hide');
$scope.currentOrder = [];
}).error(function(data,status){
//show error
alert("error");
});
}
else{
alert("invalid form");
}
}
问题出在我的作用域变量$scope.currentOrder
上,在所有其他函数中都正常工作,但在 validateAndSubmit 方法中没有按照要求更新视图,我已经使用 JavaScript 的 setInterval
方法检查了作用域变量的值。 setInterval(function(){
alert($scope.currentOrder);
}
, 5000);
更新后的值在提示框中是正确的,但视图没有更新该值,请帮忙解决。先谢谢了。
,然后在两行之后又设置为
currentOrder = []`,这样做正确吗?请提供更多代码或者访问http://jsfiddle.net以获取帮助。 - Mark Coleman