我想在2个不同的元素上使用itemView与例如InputFileBehaviors。 像
View = Marionette.ItemView.extend({
behaviors:{
InputFile : {
elementSelector : "input.file1",
field : "file1"
},
InputFile : {
elementSelector : "input.file2",
field : "file2"
}
}
显然这不起作用,因为你会覆盖关联数组中的键,但有没有另一种方法可以多次向同一个视图添加一个行为,如果没有给我一个替代策略?
更新: 好的,我找到了解决方案。 如果您使用behaviorClass和不同的keyNames,您可以获得所需的功能,唯一的问题可能是您不能再对要重用的行为进行行为查找。 示例,如果其他人遇到同样的问题:
View = Marionette.ItemView.extend({
behaviors:{
InputFile1 : {
behaviorClass : MyApp.Behaviors.InputFile1,
elementSelector : "input.file1",
field : "file1"
},
InputFile2 : {
behaviorClass : MyApp.Behaviors.InputFile1,
elementSelector : "input.file2",
field : "file2"
}
}
答案 0 :(得分:1)
从2.4.1开始注意,你可以传入一个数组:
View = Marionette.ItemView.extend({
behaviors: [
{
behaviorClass : MyApp.Behaviors.InputFile1,
elementSelector : "input.file1",
field : "file1"
}, {
behaviorClass : MyApp.Behaviors.InputFile1,
elementSelector : "input.file2",
field : "file2"
}
]
});
答案 1 :(得分:0)
更新:好的我找到了解决方案。如果您使用behaviorClass和不同的keyNames,您可以获得所需的功能,唯一的问题可能是您不能再对要重用的行为进行行为查找。示例,如果其他人遇到同样的问题:
View = Marionette.ItemView.extend({
behaviors:{
InputFile1 : {
behaviorClass : MyApp.Behaviors.InputFile1,
elementSelector : "input.file1",
field : "file1"
},
InputFile2 : {
behaviorClass : MyApp.Behaviors.InputFile1,
elementSelector : "input.file2",
field : "file2"
}
}