Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以在视图上多次使用木偶行为吗?_Javascript_Backbone.js_Marionette - Fatal编程技术网

Javascript 我可以在视图上多次使用木偶行为吗?

Javascript 我可以在视图上多次使用木偶行为吗?,javascript,backbone.js,marionette,Javascript,Backbone.js,Marionette,我希望有一个itemView,例如在两个不同的元素上输入文件行为。 像 显然,这不起作用,因为您将覆盖关联数组中的键,但是是否有其他方法可以将行为多次添加到同一视图中,如果没有,请提供其他策略 更新: 好的,我找到了解决办法。 如果您使用behaviorClass和不同的键名,您可以获得所需的功能,唯一的问题可能是您不能再对正在重用的行为进行行为查找。 如果其他任何人遇到相同问题,示例: View = Marionette.ItemView.extend({ behaviors:{

我希望有一个itemView,例如在两个不同的元素上输入文件行为。 像

显然,这不起作用,因为您将覆盖关联数组中的键,但是是否有其他方法可以将行为多次添加到同一视图中,如果没有,请提供其他策略

更新: 好的,我找到了解决办法。 如果您使用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"
    }

更新:好的,我找到了解决方案。如果您使用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"
    }
  ]
});

我认为这不是一个好主意,木偶的原则是尊重干燥的原则。如果您的行为可以接收具有选择器和字段属性的对象数组,那么行为实现将在提供的数组中的每个对象上循环。。。