Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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 主干木偶:可重用的UI元素_Javascript_Backbone.js_Marionette - Fatal编程技术网

Javascript 主干木偶:可重用的UI元素

Javascript 主干木偶:可重用的UI元素,javascript,backbone.js,marionette,Javascript,Backbone.js,Marionette,我正在构建我的第一个主干木偶应用程序,但我不知道如何将可重用的UI添加到视图模板中,因为这些UI元素具有JavaScript交互 我构建了许多UI元素,如下图所示的输入元素。可以通过JavaScript与该输入元素交互,例如单击向上/向下箭头以更改输入的值 这些UI元素应该在多个视图中一次又一次地重复使用,并且在任何给定视图中都可能包含这些UI元素的许多实例。下面显示了一个包含多个UI元素的此类视图的模型 此视图的模型可能如下所示,我希望UI元素的JavaScript交互与此视图的模型交互。

我正在构建我的第一个主干木偶应用程序,但我不知道如何将可重用的UI添加到视图模板中,因为这些UI元素具有JavaScript交互

我构建了许多UI元素,如下图所示的输入元素。可以通过JavaScript与该输入元素交互,例如单击向上/向下箭头以更改输入的值

这些UI元素应该在多个视图中一次又一次地重复使用,并且在任何给定视图中都可能包含这些UI元素的许多实例。下面显示了一个包含多个UI元素的此类视图的模型

此视图的模型可能如下所示,我希望UI元素的JavaScript交互与此视图的模型交互。换句话说,UI元素上的JavaScript交互必须能够将事件传递给显示UI元素的视图模型

var fontStyles = Backbone.Model.extend({
    defaults: {
        fontFamily: "Helvetica Neue",
        fontWeight: "Regular",
        color: "rbg(1,197,255)"
        ...
    }
});

我的问题

对于一个结构合理的主干网木偶应用程序,我应该在哪里定义这些可重用的UI元素及其JavaScript交互方法,以便在所有视图/模块中重用它们

另一个问题是,是否可以在模板文件中为这些UI元素编写一次HTML,然后在“我的视图”的下划线模板中反复使用单个UI模板文件?或者我必须在每个视图的模板中重复UI元素的HTML吗


感谢您的帮助,如果我的问题不清楚,请告诉我。

您应该将此元素创建为木偶。ItemView的扩展
应创建每个项目视图,并将其放置在要使用它们的布局内的区域中
当然,因为它是ItemView,所以它包含了模板:一些\u模板, 布局扩展,如果它们本身也包含区域

那么,你的照片呢 小图片是ItemView 大图是布局,其中包含许多区域,每个区域包含小部件,即ItemView


布局接收模型:初始化时的一些模型(布局是ItemView的扩展)

谢谢Tigra的回答。我发现另一个选择是简单地在单个文件中编写UI交互,并在我的RequireJS定义中填充。然后,在我的主干视图中,我只监听输入字段上的值更改事件,而不监听JavaScript交互。