我正在使用angularjs和firebase上载文件,我正在尝试从控制器传递参数以在state_changed事件内查看。它不起作用,我可以在控制器上打印它,但不能在视图中使用它
这些我用过的代码
// File or Blob named mountains.jpg
var file = "";
// Create the file metadata
var metadata = {
contentType: 'image/jpeg'
};
// Upload file and metadata to the object 'images/mountains.jpg'
var uploadTask = storageRef.child('images/' + file.name).put(file, metadata);
// Listen for state changes, errors, and completion of the upload.
uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED, // or 'state_changed'
function(snapshot) {
// Get task progress, including the number of bytes uploaded and the total number of bytes to be uploaded
var progress = (snapshot.bytesTransferred / snapshot.totalBytes) * 100;
console.log('Upload is ' + progress + '% done');
$scope.progress = progress;
switch (snapshot.state) {
case firebase.storage.TaskState.PAUSED: // or 'paused'
console.log('Upload is paused');
break;
case firebase.storage.TaskState.RUNNING: // or 'running'
console.log('Upload is running');
break;
}
}, function(error) {
switch (error.code) {
case 'storage/unauthorized':
// User doesn't have permission to access the object
break;
case 'storage/canceled':
// User canceled the upload
break;
...
case 'storage/unknown':
// Unknown error occurred, inspect error.serverResponse
break;
}
}, function() {
// Upload completed successfully, now we can get the download URL
var downloadURL = uploadTask.snapshot.downloadURL;
});
<pre>{{progress}}</pre>
由于firebase事件发生在AngularJS框架之外,因此对$ scope的更改需要使用$ scope。$
apply()
$scope.$apply(function() {
$scope.progress = progress;
});
从文档中:
Angular通过提供自己的事件处理循环来修改常规JavaScript流。这将JavaScript分为经典和Angular执行上下文。只有在Angular执行上下文中应用的操作才能受益于Angular数据绑定,异常处理,属性监视等。您可以使用$
apply()
从JavaScript输入Angular执行上下文。请记住,在大多数地方(控制器,服务)
$apply
已经由处理事件的指令为您调用。$apply
仅当实现自定义事件回调或 使用第三方库回调时
,才需要显式调用 。
有关更多信息,请参见
问题内容: 我这里有一些有角度的js代码。 以及带有MySQL代码的node js。我能够从此节点代码将数据传递到MySQL DB。如何继续对Node JS进行角度测试?我来自PHP背景。我应该能够将数据从angular js表单发送到MySQL数据库。我可以从这里的节点代码向MySQL数据库发送数据。 问题答案: 它可能是您入门的垫脚石: Index.html 角度代码app.js server
问题内容: 我试图弄清楚是否有任何方法可以将索引参数传递给Promise的回调函数。例如。 现在我想将数组索引参数传递为 能做到吗?请告诉我。 这是下面的代码 问题答案: 您可以为此使用闭包。 例如,在您的代码中,使用类似以下内容的代码:
类BookDescription:AppCompatActivity(){override fun onCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)setContentView(R.Layout.Activity_Book_Description) 类适配器(private val Context:Con
我创建了一个新的电子应用程序。 在索引中。jsi使用节点文件系统加载数据 如果我试着使用require。JSIT之所以能够工作,是因为它运行在不同的线程上,而不是使用节点进行初始化,更像是一个实际的浏览器窗口。但有没有办法从索引中传递数据呢。js到main。js 我不知道我对这个问题的看法是否部分正确 如果您需要更多代码或信息,请询问!
问题内容: 在我的AngularJS应用程序中,我正在执行以下操作 现在,我需要访问成功回调中的值,即,我需要知道在发出请求时它具有哪个值。 有什么“最佳实践”怎么做? PS:我可以执行以下操作,但是有更好的方法吗? 问题答案: 解决方案1: 解决方案2(根据Jim Hong的回答更新):
问题内容: 我有一个执行http POST请求的函数。代码在下面指定。这很好。 我为http GET提供了另一个功能,我想将数据发送到该请求。但是我没有那个选择。 的语法是 获取(URL,配置) 问题答案: HTTP GET请求不能包含要发布到服务器的数据。但是,您可以将查询字符串添加到请求中。 angular.http为此提供了一个选项。 请参阅:http : //docs.angularjs.