我有简单的Todo应用程序,它是使用离子框架进行练习的。我第一次在app.service里面填写了我的任务:
GetTypeInfo
工作正常。我有一个离子列表可以打开任何项目并通过复选框更改其“完成”状态。
这是我的离子列表
var todos = [
{title: "Take out the trash", done: 1},
{title: "Do laundry", done: 0},
{title: "Start cooking dinner", done: 1}
]
一切都很好。比我决定从数据库中填充我的todos数组。在控制器内使它像这样工作
<ion-list>
<ion-item ng-repeat="todo in todos"
class="item item-icon-right"
ui-sref="todos.detail({todo: $index})">
<span ng-class="{done: todo.done}">{{todo.title}}</span>
</ion-item>
</ion-list>
它有效,我仍然可以列出离子列表中的项目,但现在我无法打开任何项目。
我认为需要用
完成某些事情 $http.get("http://localhost/test.php")
.success(function (response) {
$scope.todos = response.records;
for(var i=0; i<$scope.todos.length; i++){
if($scope.todos[i].done == 1){
$scope.todos[i].done = true;
}else{
$scope.todos[i].done = false;
}
}
});
但我不知道是什么。
修改 我的todos.detail的州提供者是
ui-sref="todos.detail({todo: $index})
也许这就是问题因为,TodosService不再使用了
$stateProvider.state('todos.detail', {
url: '/:todo',
templateUrl: 'todo.html',
controller: 'TodoCtrl',
resolve: {
todo: function($stateParams, TodosService) {
return TodosService.getTodo($stateParams.todo)
}
}
})
答案 0 :(得分:0)
让它发挥作用。我需要填充TodosServices中返回的数组,如此
app.service('TodosService', function($http) {
var todos = []
$http.get("http://localhost/test.php")
.success(function (response) {
todos = response.records;
for(var i=0; i<todos.length; i++){
if(todos[i].done == 1){
todos[i].done = true;
}else{
todos[i].done = false;
}
}
});
return {
todos: todos,
getTodo: function(index) {
return todos[index]
}
}
})