AngularJS控制器中的addEventListener返回值

时间:2016-09-25 10:40:56

标签: angularjs addeventlistener

我在控制器中有以下功能:

    vm.trasformaController = function(){

                    document.getElementById("document")
                        .addEventListener("change", handleFileSelect, false);


                    function handleFileSelect(event) {
                        readFileInputEventAsArrayBuffer(event, function(arrayBuffer) {
                            mammoth.convertToHtml({arrayBuffer: arrayBuffer})
                                .then(displayResult)
                                .done();
                        });
                    }

                    function displayResult(result) {

                         var stringa = result.value;
                         console.log(stringa);
                         /*vm.risultato = stringa;*/
                         return stringa;
                /*        document.getElementById("output").innerHTML = result.value;

                        var messageHtml = result.messages.map(function(message) {
                            return '<li class="' + message.type + '">' + escapeHtml(message.message) + "</li>";
                        }).join("");

                        document.getElementById("messages").innerHTML = "<ul>" + messageHtml + "</ul>";*/

                    }

                    function readFileInputEventAsArrayBuffer(event, callback) {
                        var file = event.target.files[0];

                        var reader = new FileReader();

                        reader.onload = function(loadEvent) {
                            var arrayBuffer = loadEvent.target.result;
                            callback(arrayBuffer);
                        };

                        reader.readAsArrayBuffer(file);
                    }

                    function escapeHtml(value) {
                        return value
                            .replace(/&/g, '&amp;')
                            .replace(/"/g, '&quot;')
                            .replace(/</g, '&lt;')
                            .replace(/>/g, '&gt;');
                    }
}

如何在控制器中返回stringa变量?我试过vm.result = stringa;,但这不起作用。任何建议表示赞赏。 console.log显示我的变量存在。

1 个答案:

答案 0 :(得分:0)

我通过以下方式解决了这个问题:

scope.$apply(function(){
                           scope.refertazione.result = result.value;
                       })