【发布时间】:2016-04-23 12:32:17
【问题描述】:
我是 AngularJS 的新手,这是我的 controller.js 文件的一部分,我让登录控制器与这个相同的服务一起工作。
我现在想要实现的是使用与我的服务不同的方法从 AJAX 调用中获取数据,然后像这样将其传递给我的 HTML。
这样做的正确方法是什么?这是我尝试过的,我根据我之前的 Chrome Packaged App 项目编写了这段代码。不同之处在于,在我的第一个项目中,我有一个 javascript 文件来更改我的 HTML 中的显示,这一次,我通过控制器、服务和应用程序来操作它。
.controller('VFCtrl', function($scope, $stateParams, $http, $ionicLoading, $state, $sce) {
$ionicLoading.show({
template: 'Loading...',
duration: 1000
});
$http.post('myService/mysite.aspx',{action: 'someMethodFromService', ParameterFromMethod: 'someValue'})
.success(function (response)
{
var htmldata='';
for(i=0;i<response.length;i++)
{
var htmlInfo = '<li><div class=\'col\'><a href="'+ response[i].Id +'"><img width=\'100%\' height=\'auto\' src="'+response[i].Image + '" class=\'profile-img\' /><h3>' +response[i].Name+'</h3><p>'+response[i].Title+'</p></a></div></li>';
htmldata+= htmlInfo;
}
$("#vflist").html(htmldata);
})
//I don't wanna change how to submit data in my html in the success part
//But if it MUST be change then I will.
.error(function(data, status, headers){
console.log(status);
});
})
【问题讨论】:
-
如果你使用 Angular,你应该能够通过绑定做你正在尝试的事情,而无需使用 jQuery 注入 html。如果您想在页面之间共享数据,您可以通过服务来实现。每个服务都是一个单例,因此如果您将数据保存到服务中的一个对象并将该服务注入到其他地方,您将可以在那里访问该数据。
-
嗯,我得到了我将使用服务在页面之间共享数据的部分,因为这就是我正在做的事情,但是使用 jQuery 不是不好的做法,为什么其他所有事情都是由角度js?
-
这就是我所说的使用绑定而不是注入 html。您可以使用 ng-repeat 和绑定来创建
li标记及其上的属性。根本不需要 jQuery。 -
但如果它是动态的呢?
-
数据的形状还是返回了多少项?
标签: javascript angularjs ajax