当索引是动态的时,如何访问Ember.js中Handlebar内的数组对象?
我试图访问Ember.js上Handlebar内数组中的对象。我尝试了以下组合: 1当索引是动态的时,如何访问Ember.js中Handlebar内的数组对象?,ember.js,handlebars.js,Ember.js,Handlebars.js,我试图访问Ember.js上Handlebar内数组中的对象。我尝试了以下组合: 1{render“input validation message”validity.options.[\u view.contentIndex]}} 2{render“input validation message”validity.options.\u view.contentIndex}} 3{render“input validation message”validity.options[\u view.
{render“input validation message”validity.options.[\u view.contentIndex]}}
2{render“input validation message”validity.options.\u view.contentIndex}}
3{render“input validation message”validity.options[\u view.contentIndex]}}
数组是validity.options
,索引是\u view.contentIndex
,这是我知道如何在Ember.js上的{{each}}
循环中访问索引的唯一方法
这三种方法都没有传递对象。有人有解决办法吗
编辑:
在玩了一些游戏之后,我发现,{code>\u view.contentIndex没有在{{inspect}或{if}块内被访问。我的代码看起来有点像这样:
{{#each modelArray}}
{{#unless _view.contentIndex}}
[code here that needs to access _view.contentIndex]
{{else}}
[more code here that needs to access _view.contentIndex]
{{/unless}}
{{/each}}
有办法通过这个问题吗
修正 我稍微修改了下面的正确答案:
{{#each item in modelArray itemController='foo'}}
{{render "input-validation-message" item.validityOption}}
{{/each}}
App.FooController = Ember.ObjectController.extend({
validityOption: function(){
var model = this.get('model'),
eachController = this.get('target'),
parentController = eachController.get('target'),
idx = eachController.get('content').indexOf(model);
return parentController.get('validity.options').objectAt(idx);
}.property('model')
});
如果数组不是Ember.array,请使用
[]
notobjectAt()
您需要使用itemController并在控制器中连接关联
{{#each item in modelArray itemController='foo'}}
{{render "input-validation-message" item.validityOption}}
{{/each}}
App.FooController = Ember.ObjectController.extend({
validityOption: function(){
var model = this.get('model'),
parentController = this.parentController,
idx = parentController.indexOf(model);
return parentController.get('validity.options').objectAt(idx);
}.property('model')
});
示例:您是否在一个数组上进行教学,并试图从另一个数组中获取选项?@kingpin2k是的,教学数组是DS.Model,而validity.options数组是一个简单数组。我发现了一个更具体的错误原因,请检查编辑。太好了!不知道itemController属性。我不得不稍微修改一下,请检查编辑。