如何使用角度js读取/写入cordova中的文件?

时间:2014-12-04 13:31:52

标签: javascript android angularjs cordova ionic-framework

我正在学习离子hybird框架,如果没有其他修改,需要在android上创建一个读/写文件。我正在关注

中的cordova示例

访问http://ngcordova.com/docs/#File/

但我没有得到为filename,dir等提供的参数。我的前端是角js 这是一个我想实现的简单示例。

<ion-view >
    <ion-content>
        <lable >{{testfileObj.name}}</lable>
        <lable>{{testfileObj.desc}}</lable>
        <form ng-submit="saveFile()" novalidate>
            <label for="name">Name</label><br>
            <input id="name"  ng-model = " testfileObj.name"/><br>

            <label for="desc">Description</label><br>
            <input id="desc" ng-model="testfileObj.desc" /><br>

            <input type="submit" value="Save" />
        </form>      
        <dl id="definitions">
            {{testfileObj.testAdt}}
        </dl>
    </ion-content>
</ion-view>

我想要输入2个输入名称和desc,并希望将其保存在android文件中,但仍未能实现此目的。

.controller("TestFileCtrl",function($scope,$location,$cordovaFile){


        $scope.testfileObj = {
            name: 'has',
           desc:'semab',
           testAdt:''
        };

        $scope.saveFile = function (){
            SaveText();
        }

        var FILENAME = 'database.db',
            $ = function (id) {
                return document.getElementById(id);
            },
            failCB = function (msg) {
                return function () {
                    alert('[FAIL] ' + msg);
                }
            },
            file = {
                writer: { available: false },
                reader: { available: false }
            },
            dbEntries = [];

        document.addEventListener('deviceready', function () {
            var fail = failCB('requestFileSystem');
            window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
        }, false);

        function gotFS(fs) {
            var fail = failCB('getFile');
            fs.root.getFile(FILENAME, {create: true, exclusive: false},
                gotFileEntry, fail);
        }

        function gotFileEntry(fileEntry) {
            var fail = failCB('createWriter');
            file.entry = fileEntry;

            fileEntry.createWriter(gotFileWriter, fail);
            readText();
        }

        function gotFileWriter(fileWriter) {
            file.writer.available = true;
            file.writer.object = fileWriter;
        }

        function SaveText (e) {
            var name = $scope.testfileObj.name,
                desc = $scope.testfileObj.desc;
              alert('is coming');
            dbEntries.push('<dt>' + name + '</dt><dd>' + desc + '</dd>')
            $scope.testfileObj.name = '';
            $scope.testfileObj.email = '';

            alert('is here?');


            if (file.writer.available) {
                file.writer.available = false;
                file.writer.object.onwriteend = function (evt) {
                    file.writer.available = true;
                    file.writer.object.seek(0);
                }
                file.writer.object.write(dbEntries.join("\n"));
            }else{
                alert('not found file');
            }

            alert('what value here');
            return false;
        }

        function readText() {
            if (file.entry) {
                file.entry.file(function (dbFile) {
                    var reader = new FileReader();
                    reader.onloadend = function (evt) {
                        var textArray = evt.target.result.split("\n");

                        dbEntries = textArray.concat(dbEntries);

                        $scope.testfileObj.testAdt = dbEntries.join('');
                    }
                    reader.readAsText(dbFile);
                }, failCB("FileReader"));
            }

            return false;
        }

    })

实现这一目标的合法程序是什么。这里有人帮忙!!

0 个答案:

没有答案