Angular Routes发送数据到服务器
所以我在Angular中设计一个单页面应用程序,并且一直在做这一切!我目前正在与路由重新做,这意味着与其做$ajax
或$http
调用服务器,我想用这样的:Angular Routes发送数据到服务器
.when('/contact', {
templateUrl : '/contentMore',
controller : 'contentController'
});
我的问题是与templateUrl
。
目前我的代码看起来是这样的:
$.ajax({
url: "http://example.com/contentMore",
type: "GET",
data: {request:"Section_I_Part_1_Complete",part:"1"},
success: function(data){
$scope.robot.ajax = true;
$scope.robot.sectionStayActiveI = false;
theData = data;
$scope.$apply();
$scope.html = theData;
$('#shyBox').mCustomScrollbar({
theme:"dark"
});
$scope.background.push("I");
}
});
我所有的内容都是从同一个网址,http://example.com/contentMore
服务,什么是服务是由被它在Ajax请求发送的数据来确定。如果templateUrl仅仅是/contentMore
而没有这些数据,那么将不会提供任何内容,那么如何传递这些数据?
我只是对url进行编码吗?还去了templateUrl加载,这是否被认为是ajax请求的一种形式?
谢谢!
templateUrl用于获取(通常是静态的)html。该网址应包含您尝试接收的模板的所有信息。 Angular通过XHR请求检索此内容。
所以我编码url或其他东西?无论如何,当您发送额外的数据正确时,“GET”请求是如何工作的?它只是附加到URL不知何故?这是适当的方法吗? –
是的,我会让URL包含足够的信息来识别要显示的模板。然后,当角度发出GET请求时,服务器将知道返回的内容。我正在使用的应用程序具有静态模板,因此服务器只是返回文件。但是既然你已经有了一个动态的响应url编码可能是最简单的 – Chic
您应该首先使用'$ http'而不是'jQuery.ajax()' - 使用'$ http'时,角度“知道”请求承诺何时解决 - 这将允许它触发摘要循环并更新您的应用程序中的绑定 –
@AlonEitan是的,谢谢,我已经学会了这个笑声。但是在路由中使用'templateUrl'时,我甚至不得不使用'$ http'?我现在的主要问题是我没有路由,所以我的用户正在点击后退按钮并进入一个完全不同的页面。 –
您可以使用[ui-router](https://github.com/angular-ui/ui-router/wiki)动态地为模板提供服务,该模板为基本的角度'$ routeProvider'添加了额外的功能 - [阅读本文]( https://github.com/angular-ui/ui-router/wiki#templates)如果@ Chic的答案不够充分。而对于你总是使用'$ http'的问题 - 答案总是使用$ http,jQuery仅作为最后的手段使用,并且应该只用于指令 –