angular.js - 请教angular中scope作用域的问题

浏览:44日期:2023-01-19

问题描述

AppendBookApp.controller(’MainController’, [’$rootScope’, function($rootScope) {$rootScope.image = {}; $rootScope.image.exists = true; $rootScope.image.src = ’’; $rootScope.uploader = WebUploader.create({server: ’/upload/test’,swf: ’/libs/WebUploader/Uploader.swf’,chunked: true,disableGlobalDnd: true,dnd: document.body,paste: document.body,pick: { id: ’#UploadImageButton’, label: ’点击选择图片’},accept: { title: ’Images’, extensions: ’gif,jpg,jpeg,bmp,png’, mimeTypes: ’image/*’},compress: false,auto: true }); // setTimeout(function() { // $rootScope.image.src = ’’; // console.log($rootScope.image.src); // }, 2000); // $rootScope.image.src = ’/uploadfile/2c12c2170d0a2eaee8c061060f9f91f1.png’; $rootScope.uploader.onUploadSuccess = function(file, res) {$rootScope.image.src = res._raw;$rootScope.image.exists = true;console.log($rootScope.image.src); }; $(’.webuploader-pick’).removeClass(’webuploader-pick’).addClass(’btn btn-primary’);}]);

为什么我在上传成功的回调函数里修改scope,界面没反应

问题解答

回答1:

实际上数据已经修改成功了,界面没有反应是因为没有触发digest,代码改成下面就好了

$rootScope.uploader.onUploadSuccess = function(file, res) { $rootScope.$apply(function () {$rootScope.image.src = res._raw;$rootScope.image.exists = true;console.log($rootScope.image.src); });};

相关文章: