No Description

root 09dc4311f0 更新 'README.md' 7 years ago
hooks becc5ff0c9 ionic demo 7 years ago
scss becc5ff0c9 ionic demo 7 years ago
www becc5ff0c9 ionic demo 7 years ago
.bowerrc becc5ff0c9 ionic demo 7 years ago
.editorconfig becc5ff0c9 ionic demo 7 years ago
.gitignore becc5ff0c9 ionic demo 7 years ago
README.md 09dc4311f0 更新 'README.md' 7 years ago
bower.json becc5ff0c9 ionic demo 7 years ago
config.xml becc5ff0c9 ionic demo 7 years ago
gulpfile.js becc5ff0c9 ionic demo 7 years ago
ionic.config.json becc5ff0c9 ionic demo 7 years ago
ionic.project becc5ff0c9 ionic demo 7 years ago
package.json becc5ff0c9 ionic demo 7 years ago

README.md

依赖和注入

angular-resource

bower install angular-resource@1.5.3 --save

<script src="lib/angular-resource/angular-resource.js"></script>

angular.module('myApp', ['ngResource']);

angular-underscore-module

bower install angular-underscore-module --save

<script src="lib/underscore/underscore-min.js"></script>
<script src="lib/angular-underscore-module/angular-underscore-module.js"></script>

angular.module('myApp', ['underscore'])

config

$resourceProvider.defaults.stripTrailingSlashes = false;
$resourceProvider.defaults.actions.update = {
    method: 'PUT',
    params: {
      id: "@id"
    }
};
$resourceProvider.defaults.actions.patch = {
    method: 'PATCH',
};

list

controller

var task = $resource('url/:id/');
task.get(function (res) {
    $scope.taskList = res;
}, function (err) {
    alert(JSON.stringify(err));
})

$scope.toDetail = function (item) {
    Task.detail = _.clone(item);
    $state.go('tab.task-detail',{
        id:item.id
    })
}

$scope.toAdd = function () {
    $state.go('tab.task.detail',{
        id:0
    })
}

html

1.title
    <ion-nav-buttons side="right">
        <button class="button button-icon icon ion-android-add" ng-click="toAdd()"></button>
    </ion-nav-buttons>
2.list
    <ion-item class="item item-icon-left" ng-repeat="item in taskList" ng-click="toDetail(item)">
        <i ng-if="item.is_completed" class="icon ion-checkmark-round"></i>
        <span>{{item.title}}</span>&nbsp;<span>{{item.created | date:'yyyy/MM/dd' }}</span>
        <p>{{item.description}}</p>
    </ion-item>

doRefresh

<ion-refresher pulling-text="下拉刷新" on-refresh="doRefresh()"></ion-refresher>

function getData() {
    Task.getTask.get(function (res) {
        $scope.taskList = res;
    }, function (err) {
        alert(JSON.stringify(err));
    }).$promise.finally(function () {
        $scope.$broadcast('scroll.refreshComplete');
    });
}

config timestamp

$httpProvider.interceptors.push(function () {
    return {
        'request': function (config) {
            config.url += (config.url.indexOf("?") === -1 ? "?" : "&") + "v=" + Date.now();
            return config;
         }
    };
});

details

controller

1.route
    .state('tab.task-detail', {
        url: '/account/:id',
        views: {
        'tab-account': {
            templateUrl: 'templates/task-detail.html',
            controller: 'TaskDetailCtrl'
             }
        }
    });

2.factory
    .factory('Task', function ($resource) {
        var task = {};
        task.detail = {};
        task.getTask = $resource('url/:id/');
        return task;
    })

3.controller
    var id = $stateParams.id;
    var isNew = id == 0 ? true : false;

    $scope.data = isNew ? {
        title:null,
        description:null
    } : _.clone(Task.detail);

    $scope.addTask = function () {
        if (isNew) {
            task.save($scope.data,function () {
                $ionicHistory.goBack();
            });
        } else {
            Task.getTask.put($scope.data,function () {
                $ionicHistory.goBack();
            });
        }
    }

    $scope.deleteTask = function () {
        Task.getTask.delete({id:id});
    }

html

<ion-nav-buttons side="right">
    <button ng-if="data.id != null" class="button button-icon icon ion-minus-round" ng-click="deleteTask()"></button>
</ion-nav-buttons>


<label class="item item-input">
    <input ng-model="data.title" type="text" placeholder="标题">
</label>
<label class="item item-input">
    <textarea ng-model="data.description" rows="6" placeholder="对该任务的描述"></textarea>
</label>
<button ng-disabled="(data.title == null || data.title == '') && (data.description == null || data.description == '')" class="button button-block button-positive" ng-click="addTask()">提交</button>