如果有人能用这个让我摆脱痛苦,我将不胜感激,让我发疯,我知道这将是一件非常简单的事情。
我有一个数组:
数据
var test = [{"name":"Kober Ltd","town":"Bradford","type":"Z1CA","number":3650645629},
{"name":"Branston Ltd.","town":"Lincoln","type":"Z1CA","number":3650645630}]
我想将此信息呈现为collectionView中的子元素:
集合视图
App.ThreeView = Ember.CollectionView.extend({
itemViewClass: Ember.View.extend({
click: function(){
alert('hello')
},
classNames: ['element','foobar'],
templateName: 'foo'
})
})
这是我的控制器:
控制器
App.ThreeController = Ember.ArrayController.extend({
content: [],
init: function(){
var me = this;
$.each(test,function(k,v){
var t = App.ThreeModel.create({
name : v.name,
town: v.town,
type: v.type,
number: v.number
})
me.addObject( t )
})
console.log( me.content )
}
})
模板:
<script type="text/x-handlebars" data-template-name="application">
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="three">
</script>
<script type="text/x-handlebars" data-template-name="foo">
<div class="symbol"> {{ view.content.type }} </div>
<div class="number"> {{ view.content.number }} </div>
<div class="name"> {{ view.content.name }} </div>
<div class="town"> {{ view.content.town }} </div>
</script>
我正在使用最新的 Ember so...V2 路由器,它使用“三”名称同步所有部分。如果我将数组直接放入视图中,每个都可以工作:
App.ThreeView = Ember.CollectionView.extend({
content: test, // manually added a pure array into view content
itemViewClass: Ember.View.extend({
click: function(){
alert('hello')
},
classNames: ['element','foobar'],
templateName: 'foo'
})
})
但是当我尝试使用 Ember.js 对象“正确”执行此操作时,我没有得到任何渲染视图(除了一个空的应用程序视图)。
我已经尝试过变通方法,比如从视图添加一个“contentBinding”到控制器只是为了看看我是否可以强制连接但仍然没有。当我使用 Three.js 获取渲染内容并进一步操作时,通过容器渲染视图很重要。
所以,总结一下:我可以在视图中呈现纯数组,但控制器没有传递任何内容。顺便说一句,控制器肯定是建立的,因为我可以在 init 上控制台记录它的内容。如果我更改视图名称,控制器不会被实例化,所以我知道命名空间正在工作。
提前致谢!