- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的项目中,我尝试上传图像,将其读取为 dataURL 并将其存储到我的数据库中。
我的 HTML ng-click 使用 true 或 false 作为参数调用这些方法(一个执行 body 图像,另一个执行个人资料图像)
根据调用的是 true 还是 false,它会更改事件的 ID。
出于某种原因,当它“真实”时,一切都工作得很好。用户可以选择图像,它会被正确发送到数据库,并且图像会被正确加载。
但是,当调用“false”时,我收到错误:
[$rootScope:inprog] $apply already in progress
然后 console.log() 测试“2222”不会被调用。
HTML
<img src="{{controller.myCause.causeImage}}" ng-click="controller.uploadImage('true')" alt="Your Image Here" class="cause-img" id="profileImage" style="width: 80%; height: 35%;" height="300" />
<input id="imageUpload" type='file'>
<img src="{{controller.myCause.causeThumbnailImage}}" ng-click="controller.uploadImage('false')" alt="Your Thumbnail Here" id="profileImageThumb" class="cause-img" style="width: 80%; height: 20%;" height="200" />
<input id="profileImageUpload" type='file'>
客户端
/////////////////////////////////////
//Begin Uploading Cause Profile Image
public uploadImage(bool) {
if (bool === "true") {
$("#imageUpload").click();
this.imgUpload(bool);
} else {
$("#profileImageThumb").click();
this.imgUpload(bool);
}
}
public imgUpload(bool) {
console.log(bool);
var _this = this;
var id = "";
var imgId = "";
if (bool === "true") {
id = "#imageUpload";
imgId = "#profileImage";
} else {
id = "#profileImageUpload";
imgId = "#profileImageThumb";
}
console.log("111");
$(id).change(function () {
console.log("2222");
if (this.files && this.files[0]) {
var reader = new FileReader();
reader.readAsDataURL(this.files[0]);
$(imgId).attr('src', this.files[0]);
_this.convertFileToBase64AndSet(this.files, bool);
}
});
};
convertFileToBase64AndSet(fileList: FileList, bool) {
var self = this;
if (fileList.length > 0) {
var reader = new FileReader();
reader.onloadend = (e: Event) => {
self.postProfileImage(reader.result, bool);
}
reader.readAsDataURL(fileList[0]);
}
}
public postProfileImage(file, bool) {
if (bool === "true") {
this.$http.put(`api/causes/profpic`, JSON.stringify(file)).then((res) => {
this.$state.reload();
});
} else {
this.$http.put(`api/causes/thumbpic`, JSON.stringify(file)).then((res) => {
this.$state.reload();
});
}
}
//End Cause Profile Image Upload
////////////////////////////////
最佳答案
您的点击事件正在运行摘要周期,该周期与当前摘要周期冲突。
您可以使用setTimeout()
你能试试这个吗
public uploadImage(bool) {
if (bool === "true") {
setTimeout(function({$("#imageUpload").click();})
this.imgUpload(bool);
} else {
setTimeout(function({$("#profileImageThumb").click();})
this.imgUpload(bool);
}
}
关于javascript - $rootScope :inprog $apply already in progress . 更改事件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44422653/
我需要在我的 Angular JS Web 应用程序中切换 View 。 为了处理路由,我使用 $stateProvider,如下所示: .config(['$httpProvider', '$sta
我开始使用 Angular Material 并很难理解 $scope.apply 功能的问题...我尝试通过调用 apply 来通知 UI 有关更改的信息,但失败并出现错误。我知道也有类似的问题,但
我尝试在刷新数据后将更改应用于 ui 网格,但出现此错误: angular.js:13236 Error: [$rootScope:inprog] $apply already in prog
我正在尝试编写一个将给定模板和范围呈现为字符串的服务。 这是代码: utilModule.factory('CompilerService', ['$compile', '$templateCache
我收到 angularjs [$rootScope:inprog] 错误。 错误:[$rootScope:inprog] http://errors.angularjs.org/1.2.7/$root
我有输入字段: 焦点事件绑定(bind)到此方法: scope.focus = function (e, names) { scope.dateSet = false;
在我的项目中,我尝试上传图像,将其读取为 dataURL 并将其存储到我的数据库中。 我的 HTML ng-click 使用 true 或 false 作为参数调用这些方法(一个执行 body 图像,
我正在尝试在模型中的属性更改时发送表单(使用指令)(因此我观察属性),但是当我触发提交事件时,我收到错误:“错误:[$rootScope :inprog] $digest already in pro
有没有一种方法可以在下面的代码片段中应用范围而不引发错误? (并且没有像 try/catch、$timeout 或硬编码 BONJOUR 这样的黑客和解决方法) 如果没有 SCOPE.$apply()
我对 Angular 不是很好,但我知道一些基础知识。现在,我有接入点并想将它们分配给建筑物。我可以用 选择这座建筑.我写了一个简单的 Controller ,但它不会工作。我做错了什么,我找不到解
我为此搜索并尝试了很多方法,我想也许我只是做错了。 我有一个单页应用程序,它具有非常相似的 DOM 片段,仅通过从服务输入到它们的数据来区分。每个 DOM 片段都有不同的 Web 服务。 我的 HTM
我正在尝试更新属于 $scope 的页面上的一些文本。但我不断收到此错误: Error: [$rootScope:inprog] [http://errors.angularjs.org/1.2.15
AngularJS 1.5.9 出现了一个非常奇怪的异常 [$rootScope:inprog] null already in progress 以下是引发此异常的源代码: function beg
我试图在按下一个键时触发一个按钮的点击。我正在使用 triggerHandler 函数执行此操作,但这会导致上述错误。我想我一定创建了某种循环引用/循环,但我看不到在哪里。 这是我的 HTML: 这
我正在显示一个按钮,单击该按钮会定位一个输入元素 一旦找到该元素(使用 jquery),我就会尝试发出单击。虽然这确实有效(选择文件对话框打开),但我还在 angularjs 中收到 $rootS
我经常收到“$apply已经在进行中”的错误代码: public addFile(): void { if (window["File"]) { $("#fileSelecto
关于此错误的其他帖子总是包括有人在不使用安全应用的情况下尝试 $apply,但在我的示例中并非如此。我的函数成功返回了我从 API 请求的数据,但我无法清除这个错误,这让我发疯。 每次在 $http
我想创建自定义文件上传组件。我在 html 中做了以下代码 HTML 代码 // don`t want to render default Browse JS 代码 $scope.clickUploa
我是一名优秀的程序员,十分优秀!