Javascript 来自angular.element(document).ready或initController的$.getJSON调用
我使用以下代码片段从服务器获取数据,以加载页面的初始内容Javascript 来自angular.element(document).ready或initController的$.getJSON调用,javascript,angularjs,Javascript,Angularjs,我使用以下代码片段从服务器获取数据,以加载页面的初始内容 (function () { 'use strict'; angular .module('app') .controller('MyController', MyController); MyController.$inject = ['UserService', '$rootScope', '$scope', '$cookieStore', 'AuthenticationService']; function My
(function () {
'use strict';
angular
.module('app')
.controller('MyController', MyController);
MyController.$inject = ['UserService', '$rootScope', '$scope', '$cookieStore', 'AuthenticationService'];
function MyController(UserService, $rootScope, $scope, $cookieStore, AuthenticationService) {
/*Discussion Board related Functions*/
angular.element(document).ready(function () {
// Get Current User
$rootScope.globals = $cookieStore.get('globals') || {};
$scope.currentUser = AuthenticationService.GetAuthData($rootScope.globals.currentUser.authdata);
$.getJSON(
"http://localhost/getSomeServerData.php",
{ userName: $scope.currentUser },
$scope.getSomeDataResponse
);
});
$scope.getSomeDataResponse = function (jason) {
var servRet = jason;
alert("On Load Called-2");
};
}
})()
但是,未调用响应函数$scope.getSomeDataResponse
请让我知道这种方法有什么问题
但是,响应函数$scope.getSomeDataResponse不可用
接到电话
请让我知道这种方法有什么问题
问题是,在声明getSomeDataResponse之前,您正在引用它。另外,您正在使用jQuery的getJSON()
在angularJS代码中使用HTTP get请求从服务器获取数据
这尤其不是推荐的做法。如果在页面中包含jQuery,AngularJS将在指令中包装元素时使用jQuery而不是jqLite,否则它将可委托给jqLite(这可能在所有情况下都不起作用)。为了安全起见,请使用angular的$http.get()
服务,而不是$.getJSON()
当然,您需要在控制器中注入$http
服务以使其工作。看看线程中其他可能的替代方案
干杯
但是,响应函数$scope.getSomeDataResponse不可用
接到电话
请让我知道这种方法有什么问题
问题是,在声明getSomeDataResponse之前,您正在引用它。另外,您正在使用jQuery的getJSON()
在angularJS代码中使用HTTP get请求从服务器获取数据
这尤其不是推荐的做法。如果在页面中包含jQuery,AngularJS将在指令中包装元素时使用jQuery而不是jqLite,否则它将可委托给jqLite(这可能在所有情况下都不起作用)。为了安全起见,请使用angular的$http.get()
服务,而不是$.getJSON()
当然,您需要在控制器中注入$http
服务以使其工作。看看线程中其他可能的替代方案
干杯 首先,在使用之前必须定义结果函数。 其次,必须正确使用$.getJSON。所以这对我来说在修复后很有效
$scope.getSomeDataResponse = function (jason) {
var servRet = jason;
alert("On Load Called-2");
};
/*Discussion Board related Functions*/
angular.element(document).ready(function () {
// Get Current User
$rootScope.globals = $cookieStore.get('globals') || {};
$scope.currentUser = AuthenticationService.GetAuthData($rootScope.globals.currentUser.authdata);
$.getJSON(
"http://localhost/getSomeServerData.php",
{ userName: $scope.currentUser }
).always($scope.getSomeDataResponse);
jQuery中的回调方法不同。通过查看jQuery文档,使用fail和done回调
首先,在使用前必须定义结果函数。 其次,必须正确使用$.getJSON。所以这对我来说在修复后很有效
$scope.getSomeDataResponse = function (jason) {
var servRet = jason;
alert("On Load Called-2");
};
/*Discussion Board related Functions*/
angular.element(document).ready(function () {
// Get Current User
$rootScope.globals = $cookieStore.get('globals') || {};
$scope.currentUser = AuthenticationService.GetAuthData($rootScope.globals.currentUser.authdata);
$.getJSON(
"http://localhost/getSomeServerData.php",
{ userName: $scope.currentUser }
).always($scope.getSomeDataResponse);
jQuery中的回调方法不同。通过查看jQuery文档,使用fail和done回调
虽然不是很好的做法,但是$.getJSON应该仍然有效。OP并不是问在angular中$.getJSON的等价物是什么,也不是问在angular中调用RESTful服务的最佳实践是什么,这太不成熟了。他的代码看起来不错,否则,唯一可能的原因可能是$.getJSON与angularJS版本不兼容。他提到他使用的angularJS版本了吗?或者他是否使用了jQuery。对不起,你不喜欢我的评论。我刚才指出,你的回答开头的这句话是不正确的。引用:“问题是,您正在使用jQuery的getJSON()在angularJS代码中使用HTTP get请求从服务器获取数据”。我刚刚得到了他的代码与最新的两个。如果你编辑并删除错误的声明,我可以删除消极的voteHi NLN,谢谢你的细节。我将使用这些信息来改进我的代码。再次感谢!。虽然不是很好的实践,但是$.getJSON仍然可以工作。OP并不是问在angular中$.getJSON的等价物是什么,也不是问在angular中调用RESTful服务的最佳实践是什么,这太不成熟了。他的代码看起来不错,否则,唯一可能的原因可能是$.getJSON与angularJS版本不兼容。他提到他使用的angularJS版本了吗?或者他是否使用了jQuery。对不起,你不喜欢我的评论。我刚才指出,你的回答开头的这句话是不正确的。引用:“问题是,您正在使用jQuery的getJSON()在angularJS代码中使用HTTP get请求从服务器获取数据”。我刚刚得到了他的代码与最新的两个。如果你编辑并删除错误的声明,我可以删除消极的voteHi NLN,谢谢你的细节。我将使用这些信息来改进我的代码。再次感谢!。你检查过你的控制台了吗?您没有看到关于XMLHttpRequest无法加载或类似问题的任何错误吗?正如回答(例如@NLN)中指出的,您没有遵循一些好的实践,但是如果您按照我在回答中指出的那样进行修复,您的代码应该仍然可以工作。您检查了控制台了吗?你没有看到关于XMLHttpRequest无法加载或类似的错误吗?正如一些回答(例如@NLN)中指出的,你没有遵循一些好的实践,但是如果你像我在回答中指出的那样进行修复,你的代码应该仍然可以工作。OP使用
$没有任何错误或“不正确”。getJSON
感谢你在这方面的帮助。我是Web开发的初学者(不到一个月)。因此,我们犯了一些可怜的错误。在某种程度上,我同意@NLN。我将努力使我的代码更好。干杯@大卫康拉德:你说得对。您可以提供一个成功处理程序,但如果调用失败,OP将不会得到任何调用,OP希望该警报始终弹出up@Braim,OP中没有说“错误时应调用getSomeDataResponse”或类似的语句,问题是从未调用过getSomeDataResponse
。您的always()
是一个毫无意义的附录,因为它没有错误处理的支持-结果是,即使发生错误,也会调用成功处理程序!!这可能会影响应用程序的各个方面。在3个月的时间里,OP必须找出错误发生的原因,他将花费数小时,直到他意识到是JSON失败——代码他真的失败了