gpt4 book ai didi

ember.js - 将 Flow JS 与 Ember JS 集成 - 数据未绑定(bind)

转载 作者:行者123 更新时间:2023-12-01 03:44:42 28 4
gpt4 key购买 nike

我正在尝试集成 FlowJS使用 EmberJS。我成功地将数据上传到服务器,所以,我在这方面做得很好。

我尝试将流对象数据与 emberJS 组件绑定(bind)以通过 Handlebars 显示数据时失败。由于某种原因,数据绑定(bind)不起作用。

这是代码的示例。

HTML

<script type="text/x-handlebars" data-template-name="index">
{{flow-uploader}}
</script>

<script type="text/x-handlebars" id="components/flow-uploader">
<div class="drop"></div>
<!-- file list -->
{{#each file in flow.files}}
<p>File name: {{file.name}}</p>
{{/each}}
</script>

JS
App = Ember.Application.create({
rootElement: '#main'
});


App.FlowUploaderComponent = Ember.Component.extend({

flow: function(){
return new Flow({
target: 'http://google.com',
testChunks: false
});
}.property(),

initDropZone: function(){

var flow = this.get('flow');
var drop = this.$('.drop')[0];
var $this = this;

flow.assignDrop(drop);

/*flow.on('fileAdded', function(file, flow){

});
flow.on('filesAdded', function(files){
});
flow.on('fileSuccess', function(file,message){
console.log('file success');
});
flow.on('fileError', function(flow, message, chunk){
console.log('file error');
});*/
flow.on('filesSubmitted', function(){
console.log($this.get('flow').files);
//flow.upload();
});

/*flow.on('complete', function(event, flow){
console.log('completed');
});

flow.on('uploadStart', function(event, flow){
console.log('uploading..');
});
flow.on('fileProgress', function(flow, file){

});*/

}.on('didInsertElement')

});

示例可以在 http://jsfiddle.net/sisir/qLuobq48/2/ 上看到。

基本上我在这里所做的是将流对象保存为组件属性。 files flow 对象的属性是要上传的文件数组。一旦我们拖放或选择多个文件上传 files数组得到更新。我们可以在控制台上看到它。日志代码通过 filesSubmitted 添加事件。

从 Handlebars 表达式中,每个文件都从文件队列中迭代。最初它是空的,但后来当它被填充时,它不会显示在 html 上。 数据绑定(bind)不起作用由于某些原因。

最佳答案

在您的组件逻辑中:

App.FlowUploaderComponent = Ember.Component.extend({

flow: function(){
return new Flow({
target: 'http://google.com',
testChunks: false
});
}.property(),

initDropZone: function(){

var $this = this;

var flow = this.get('flow');
var drop = this.$('.drop')[0];

flow.assignDrop(drop);

flow.on('filesSubmitted', function(){

//for setting a single property
$this.set('flowFiles', flow.files);

//for setting multiple properties
// $this.setProperties({'flowFiles': flow.files, /* etc.. */});

});


}.on('didInsertElement')

});

在您的模板中:
<script type="text/x-handlebars" data-template-name="index">   
{{flow-uploader}}
</script>

<script type="text/x-handlebars" id="components/flow-uploader">
<div class="drop"></div>
<!-- file list -->
{{#each file in flowFiles}}
File name: {{file.name}}
{{/each}}
</script>

JSBin Example

关于ember.js - 将 Flow JS 与 Ember JS 集成 - 数据未绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28001353/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com