我想学习如何使用Ionic框架,
我已经制作了一个控制器,使用play 2.0作为Web服务器从数据库中获取一些数据。 这是我的工厂代码:
.factory('Projects', function($http) {
var projects = [];
return {
getProjects: function() {
$http.defaults.headers.post['Content-Type'] = 'application/json';
return $http({
method: 'POST',
url: 'http://localhost:8101/getProjects',
dataType: 'json',
headers: { 'Content-Type': undefined }
}).success(function(data, status) {
projects= data;
return projects
}).error(function(arg) {
alert("error ");
});
}
}
})
和我的控制员:
.controller('RootsCtrl', function($scope, Projects, $http) {
$scope.projects= Projects.getProjects();
})
这是我的观点:
<ion-view view-title="Projects">
<ion-content>
<ion-list>
<ion-item class="item-remove-animate item-avatar item-icon-right" ng-repeat="project in projects" type="item-text-wrap" >
<h2>{{project.try}}</h2>
</ion-item>
</ion-list>
</ion-content>
</ion-view>
Web服务器现在只返回一些虚假数据。
我无法理解为什么在我看来,project.try的值不会显示,但是该行存在。 所以,如果我有两个值,在我的html中我可以看到两行,但没有他们的&#34;名称&#34;。 感谢
答案 0 :(得分:1)
工厂是单身人士并返回包含服务成员的对象。
.factory('Project', function($http, $log) {
return {
getProjects: getProjects
};
function getProject(){
var config = {
method: 'POST',
url: 'http://localhost:8101/getProjects',
headers: { 'Content-Type': undefined }
}
return $http(config).then(success).catch(failure);
}
function success(resp){
return resp.data;
}
function failure(error){
return error;
}
});
$ http返回一个承诺。
//Controller
.controller('RootsController', function(Project){
var vm = this;
fetchProject();
function fetchProject(){
Project.getProject().then(success, failure);
}
function success(data){
vm.projects = data;
}
function failure(err){
// Error Handling
}
});
在您看来:
<ion-item ng-repeat = "project in vm.projects">
{{project}}
</ion-item>
同样在你的州:
controller: 'RootsController as vm' because Ionic has issues with controllerAs syntax.
您还没有发布任何数据吗?并且您只能查看行而不是名称,因为project
对象存在但可能不包含名为try
的键