角度获取请求
我有一个工作角形式坐在应用程序(导轨应用程序)内。它发送一个get请求到一个rails服务器。角度获取请求
问题是,如果这个应用程序收到一个正常的请求,它会刷新页面。但是,当通过角度发送请求时,我可以在服务器上看到请求,但该页面从不刷新。 (我可以使用这些获取请求来获取数据)。
问题是如何以角度形式传递get请求,以便服务器正常处理它并刷新页面?
HTML:
<form ng-submit="submitForm()" style="margin-top:30px;">
<h3>get request</h3>
<button type="submit" class="btn btn-primary">Get</button>
</form>
app.js控制器:
$scope.submitForm = function(){
posts.factorySubmit();
};
app.js工厂获得功能:
o.factorySubmit = function() {
$http.get('http://localhost:8080/clients');
};
--side注 - 如果我创建了一个GET请求,在应用程序中使用常规的java脚本,在角度上下文之外,我得到预期的行为,页面刷新。
你已经把你的$ http包装在一个非常好的工厂里。你没有做的是捕捉到回应。
o.factorySubmit = function() {
// Add a return here
return $http.get('http://localhost:8080/clients'); // This call returns a promise
};
然后当你调用这个函数...
$scope.submitForm = function(){
posts.factorySubmit().then(function(response) {
$scope.requests = response.data; // This is where you get your response
},
function(response) {
// This is your error handling
});
};
很酷的事情有关的角度是,它会发现变化并自动更新页面。它有一个摘要循环,内部响应变化而被调用。由于您使用的是内置的$http
提供程序,因此在更新$scope
变量时它会刷新。
所以,我把你的编辑。角度接收的数据被刷新。问题是,它仍然不刷新页面。它必须刷新,以便应用程序按照轨道路由器并通过逻辑,根据获取请求:( – HoosierCoder
rails逻辑需要做什么?也许当您接到呼叫时,您可以发布以执行任何服务器可能你遇到了我开始将ASP.NET MVC与AngularJS混合使用时碰到的同一个问题,这是一种新的思考方式 – Zach
它从获取请求中接收参数,解析数据并绘制图表 – HoosierCoder
Angular在设计上应该不会刷新页面,因为它是为单页面应用程序构建的。如果你想手动刷新页面,使用
$scope.submitForm = function(){
posts.factorySubmit().success(function(){
$route.refresh();
});
};
在你$get
请求的成功作用。请记住将$route
注入您的控制器。
我试过这个,但由于某种原因,只要我注入$ route,就会中断应用程序。这个控制器代码看起来正确'。控制器( 'MainCtrl',[ \t '$范围', \t '$路线', \t '信息', \t函数($范围,$路线,柱){ \t $ scope.posts =职位。讯息; \t $ scope.submitForm =函数(){ \t \t posts.factorySubmit()成功(函数(){ \t \t $ route.refresh(); \t \t}); \t}; \t} ])' – HoosierCoder
根据$ http文档,.success()现在不推荐使用 - 使用标准的.then()回调代替 https://docs.angularjs.org/api/ng/service/$ http –
'$ http.get'是一个AJAX调用,它不会刷新页面。但通常你不想在角度应用中重新加载页面。你为什么要重新加载它? – nagyf
是否要重新加载以显示来自GET的数据? – Wandrille
我需要服务器处理一系列在rails中发生的逻辑,并用该新逻辑重新加载页面。基本上,我不想重写角度上的所有逻辑.. – HoosierCoder