Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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
Dart 以编程方式创建数据列表_Dart_Dart Polymer - Fatal编程技术网

Dart 以编程方式创建数据列表

Dart 以编程方式创建数据列表,dart,dart-polymer,Dart,Dart Polymer,我试图以编程方式创建一个表,其中一个单元格包含一个数据列表。下面是片段 @CustomTag('phone form') 类PhoneForm扩展了关联 { @可观察列表提供者=['','AT&T','Digicel','Flow','Lime']; @可观察列表电话=['','汽车','回拨','传真','家庭','家庭传真','家庭手机', ‘家庭视频’、‘手机’、‘寻呼机’、‘工作’, ‘工作直接’、‘工作传真’、‘工作移动’、‘工作视频’, ‘近亲之家’、‘近亲手机’, “近亲工作”、“

我试图以编程方式创建一个表,其中一个单元格包含一个数据列表。下面是片段

@CustomTag('phone form')
类PhoneForm扩展了关联
{
@可观察列表提供者=['','AT&T','Digicel','Flow','Lime'];
@可观察列表电话=['','汽车','回拨','传真','家庭','家庭传真','家庭手机',
‘家庭视频’、‘手机’、‘寻呼机’、‘工作’,
‘工作直接’、‘工作传真’、‘工作移动’、‘工作视频’,
‘近亲之家’、‘近亲手机’,
“近亲工作”、“免收费”、“网络电话”];
int phone selectedIndex=0;
表元素表;
PhoneForm.created():super.created()
{
table=$['table'];
//表.border=“2”;
TableSectionElement head=table.createTHead();
TableRowth元素=table.tHead.insertRow(-1);
th.insertCell(0.text=“Type”;
th.insertCell(1).text=“提供者”;
th.insertCell(2).text=“编号”;
ButtonElement newLineBtn=新ButtonElement()
…文本='新编号'
…一次点击。听((e)
{
e、 预防默认值();
insertRow();
});
th.insertAdjacentElement('beforeend',newLineBtn);
}
void insertRow()
{
Phone new_Phone=新电话();
TableSectionElement tBody=table.createTBody();
TableRowElement换行符=tBody.insertRow(-1);//在末尾添加
newLine.insertCell(0.insertAdjacentHtml('beforeend',
'''
{{provida}}
''');
DataListElement提供程序=新建DataListElement()
…一次点击。听((e)
{
});
insertCell(1).insertAdjacentElement('beforeend',provider);
TextInputElement numElem=新的TextInputElement();
numElem.onChange.listen((e)
{
打印(‘更改’);
new_phone.num=numElem.value;
打印(编码(新手机));
});
换行符.insertCell(2).insertAdjacentElement('beforeend',numElem);
}
然而。。。 1.三重引号中的胡须内容均未按预期呈现 2.如何在下面的代码中以编程方式创建数据列表

DataListElement提供程序=新建DataListElement()
…一次点击。听((e)
{
});
据我所知,不可能将包含胡须的动态构建标记绑定到字段

Polymer 0.15.0添加了
injectBoundHtml
。 使用过的表达式必须已经在某个地方使用过,以便Smoke知道如何为它们生成代码。 有关更多详细信息,请参阅

只需将HTML放入聚合元素的模板中。
在您的示例中,我看不出需要动态创建HTML的原因

如果您确实希望动态添加HTML,您还可以迭代列表,并将要绑定的值直接包含到生成的HTML中

如果必须动态构建HTML,则可以使用
Node.bind()
动态创建绑定


下面是一个使用
Node.bind()的示例

谢谢Gunter,但是如何以编程方式使用DataListElement创建DataList?我不知道如何提供list元素。为什么要以编程方式创建它?在上面的代码中,我必须先添加表头,然后分别添加表单元格内容。我认为创建单元格可能更容易内容以编程方式而不是以声明方式使用html5作为插入方法。为什么编写HTML会困难?这就是Polymer的用途,您可以使用HTML来构建视图,使用Dart来构建模型/业务逻辑。当您喜欢您的问题时,我会发现这会变得困难。我没有说这很困难。对于使用我想用编程的方式做可能更容易。