【发布时间】:2015-12-19 23:07:47
【问题描述】:
我正在尝试设置一个简单的 Marionette 的 CompositeView。这就是我最终想要的:
%select#target-id
%option{:value => "#{@id}"} = @name
%option{:value => "#{@id}"} = @name
etc
在我的CompositeView 中,我指定了childViewContainer: select,并且我需要在此选择的选项中同时显示@name(为了便于阅读)和@id(为了相关事件)。由于默认 div 元素的性质,我可以在我的ItemView 中将tagName 指定为option:
class New.TargetView extends App.Views.ItemView
template: "path/to/template"
tagName: 'option'
在模板中我只能传递要创建的选项元素的内容:= @name。这很好用,Marionette 为每个模型创建一个选项元素并用模型的名称填充它。问题是我也不知道如何传递属性,因为我无法指定尚未创建的元素的属性。
我还尝试在ItemView 上设置attributes 属性,如下所示:
attributes:
value: "#{@id}"
它在技术上有效:选项填充有value="" 属性,但内容未定义。请指教。
【问题讨论】:
标签: javascript backbone.js marionette