码迷,mamicode.com
首页 > 其他好文 > 详细

ionic 不同view的數據交互

时间:2014-10-13 14:02:59      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   ar   for   sp   

angular中通過service factory 等服務來對不同的控制器進行數據交互 ,ionic 也一樣...

 1 var app = angular.module(‘ionicApp‘, [‘ionic‘])
 2 
 3 app.service(‘TodosService‘, function($q) {
 4   return {
 5     todos: [
 6       {
 7         id: ‘1‘,
 8         name: ‘Pick up apples‘,
 9         done: false
10       },
11       {
12         id: ‘2‘,
13         name: ‘Mow the lawn‘,
14         done: true
15       }
16     ],
17     getTodos: function() {
18       return this.todos
19     },
20     getTodo: function(todoId) {
21       var dfd = $q.defer()
22       this.todos.forEach(function(todo) {
23         if (todo.id === todoId) dfd.resolve(todo)
24       })
25 
26       return dfd.promise
27     }
28 
29   }
30 })

在不用的view中我們可以通過 route 中的resolve 來加載相關的服務;

 1 app.config(function($stateProvider, $urlRouterProvider) {
 2   $urlRouterProvider.otherwise(‘/todos‘)
 3 
 4   $stateProvider
 5   .state(‘todos‘, {
 6     url: ‘/todos‘,
 7     controller: ‘TodosCtrl‘,
 8     templateUrl: ‘todos.html‘ ,
 9     resolve: {
10       todos: function(TodosService) {
11         return TodosService.getTodos()
12       }
13     }
14   })
15   .state(‘todo‘, {
16     url: ‘/todos/:todoId‘,
17     controller: ‘TodoCtrl‘,
18     templateUrl: ‘todo.html‘   ,
19     resolve: {
20       todo: function($stateParams, TodosService) {
21         return TodosService.getTodo($stateParams.todoId)
22       }
23     }
24   })
25 })

在控制器中注入 在route中加載的服務返回的函數 如todo todos

1 app.controller(‘TodosCtrl‘, function($scope,todos) {
2   $scope.todos = todos;
3 })
4 
5 app.controller(‘TodoCtrl‘, function($scope,todo) {
6 
7   $scope.todo = todo
8 
9 })

 

這是鏈接 轉載於這個

ionic 不同view的數據交互

标签:style   blog   http   color   io   os   ar   for   sp   

原文地址:http://www.cnblogs.com/xieyier/p/4021847.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!