Javascript 我可以在视图上多次使用木偶行为吗?
我希望有一个itemView,例如在两个不同的元素上输入文件行为。 像 显然,这不起作用,因为您将覆盖关联数组中的键,但是是否有其他方法可以将行为多次添加到同一视图中,如果没有,请提供其他策略 更新: 好的,我找到了解决办法。 如果您使用behaviorClass和不同的键名,您可以获得所需的功能,唯一的问题可能是您不能再对正在重用的行为进行行为查找。 如果其他任何人遇到相同问题,示例:Javascript 我可以在视图上多次使用木偶行为吗?,javascript,backbone.js,marionette,Javascript,Backbone.js,Marionette,我希望有一个itemView,例如在两个不同的元素上输入文件行为。 像 显然,这不起作用,因为您将覆盖关联数组中的键,但是是否有其他方法可以将行为多次添加到同一视图中,如果没有,请提供其他策略 更新: 好的,我找到了解决办法。 如果您使用behaviorClass和不同的键名,您可以获得所需的功能,唯一的问题可能是您不能再对正在重用的行为进行行为查找。 如果其他任何人遇到相同问题,示例: View = Marionette.ItemView.extend({ behaviors:{
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"
}
}
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"
}
更新:好的,我找到了解决方案。如果您使用behaviorClass和不同的键名,您可以获得所需的功能,唯一的问题可能是您不能再对正在重用的行为进行行为查找。如果其他任何人遇到相同问题,示例:
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"
}
}
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"
}
}注意:从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"
}
]
});
我认为这不是一个好主意,木偶的原则是尊重干燥的原则。如果您的行为可以接收具有选择器和字段属性的对象数组,那么行为实现将在提供的数组中的每个对象上循环。。。