索引 0 处的 Dojo 绑定数据从数组到小部件
Dojo binding data at index 0 from array to widget
我有一个 java 脚本 对象,我试图将该对象绑定到索引 0 处的小部件,但是我无法绑定到数组对象。
我不想为数组中的每条记录重复小部件我只想将小部件绑定到索引 0 处 companyList
中的 salary1。
数组:
data = new Stateful({
companyList:[{id:1, salary1:300.00, salary2:200.00, salary3:400.00}]
});
HTML:
<span title="(a) Salary For Month One :" data-dojo-type="dijit/_WidgetBase"
data-dojo-props="target:at(data,'companyList')">
<s:textfield type="text" name="salary1" required="true"
id="Salary1Id" placeholder="Salary Month One (e.g. 1234.00)"
trim="true" data-dojo-type="dijit/form/CurrencyTextBox"
data-dojo-props="value:at('rel:','salary1'),uppercase:true ,constraints:{fractional:true}, currency:'USD'"/>
</span>
这看起来与此处的示例非常相似:
http://dojotoolkit.org/reference-guide/1.10/dojox/mvc/WidgetList.html#id4
我假设您将 dijit/_WidgetBase 包装在带有 WidgetList 的 div 设置中,使用 _InlineTemplateMixin 并正确设置子项?
类似这样:
<div data-dojo-type="dojox/mvc/WidgetList"
data-dojo-mixins="dojox/mvc/_InlineTemplateMixin"
data-dojo-props="children: at(searchRecords, 'items')">
<script type="dojox/mvc/InlineTemplate">
其实你的问题也可能与使用newStateful而不是getStateful()有关,getStateful会处理数组。
所以它适用于我:
sdata = getStateful({
companyList:[{id:1, salary1:300.00, salary2:200.00, salary3:400.00}]
});
还有这个:
<div id="main">
<div data-dojo-type="dojox/mvc/Group"
data-dojo-props="target: sdata">
<h4>Declarative WidgetList using data-mvc-child-type </h4>
<div data-dojo-type="dojox/mvc/WidgetList"
data-dojo-props="children: at('rel:', 'companyList')"
data-mvc-child-type="dijit/form/CurrencyTextBox"
data-mvc-child-props="value: at(this.target, 'salary1'),
class: 'row'">
</div>
</div>
<h4>Declarative WidgetList using a dojox/mvc/InlineTemplate </h4>
<div data-dojo-type="dojox/mvc/WidgetList"
data-dojo-mixins="dojox/mvc/_InlineTemplateMixin"
data-dojo-props="children: at(sdata,'companyList')">
<script type="dojox/mvc/InlineTemplate">
<div>
<span type="text" name="salary1" required="true"
id="Salary1Id" placeholder="Salary Month One (e.g. 1234.00)"
trim="true" data-dojo-type="dijit/form/CurrencyTextBox"
data-dojo-props="value:at('rel:','salary1'),uppercase:true ,constraints:{fractional:true}, currency:'USD'"/>
</span>
</div>
</script>
</div>
<p>Updates to either set of CurrencyTextBoxes will be reflected in the other
</div>
经过对 dojox mvc
的一些研究,我能够根据记录的索引值将单个表单元素绑定到有状态数组对象,例如数组中的 0,1,2,3...。
这是一个有效的场景,开发人员可能正在使用一个数组对象,该对象在某些时候可能 return 一条记录而不是一个数组或多个记录。如果开发人员希望将该单个记录绑定到表单字段元素,他们可以使用索引一次访问一条记录并显示给用户。他们可以看看下面的解决方案。
数据
数据=新的状态({
公司列表:[{id:1, salary1:300.00, salary2:200.00, salary3:400.00}]
});
HTML
解决方案创建另一个访问数组记录索引的组:
<span data-dojo-type="dojox/mvc/Group" data-dojo-props= "target: at('rel:', 0)">
<span title="(a) Salary For Month One :" data-dojo-type="dijit/_WidgetBase"
data-dojo-props="target:at(data,'companyList')">
<span data-dojo-type="dojox/mvc/Group" data-dojo-props= "target: at('rel:', 0)">
<s:textfield type="text" name="salary1" required="true"
id="Salary1Id" placeholder="Salary Month One (e.g. 1234.00)"
trim="true" data-dojo-type="dijit/form/CurrencyTextBox"
data-dojo-props="value:at('rel:','salary1'),uppercase:true ,constraints:{fractional:true}, currency:'USD'"/>
</span>
</span>
我有一个 java 脚本 对象,我试图将该对象绑定到索引 0 处的小部件,但是我无法绑定到数组对象。
我不想为数组中的每条记录重复小部件我只想将小部件绑定到索引 0 处 companyList
中的 salary1。
数组:
data = new Stateful({
companyList:[{id:1, salary1:300.00, salary2:200.00, salary3:400.00}]
});
HTML:
<span title="(a) Salary For Month One :" data-dojo-type="dijit/_WidgetBase"
data-dojo-props="target:at(data,'companyList')">
<s:textfield type="text" name="salary1" required="true"
id="Salary1Id" placeholder="Salary Month One (e.g. 1234.00)"
trim="true" data-dojo-type="dijit/form/CurrencyTextBox"
data-dojo-props="value:at('rel:','salary1'),uppercase:true ,constraints:{fractional:true}, currency:'USD'"/>
</span>
这看起来与此处的示例非常相似:
http://dojotoolkit.org/reference-guide/1.10/dojox/mvc/WidgetList.html#id4
我假设您将 dijit/_WidgetBase 包装在带有 WidgetList 的 div 设置中,使用 _InlineTemplateMixin 并正确设置子项? 类似这样:
<div data-dojo-type="dojox/mvc/WidgetList"
data-dojo-mixins="dojox/mvc/_InlineTemplateMixin"
data-dojo-props="children: at(searchRecords, 'items')">
<script type="dojox/mvc/InlineTemplate">
其实你的问题也可能与使用newStateful而不是getStateful()有关,getStateful会处理数组。
所以它适用于我:
sdata = getStateful({
companyList:[{id:1, salary1:300.00, salary2:200.00, salary3:400.00}]
});
还有这个:
<div id="main">
<div data-dojo-type="dojox/mvc/Group"
data-dojo-props="target: sdata">
<h4>Declarative WidgetList using data-mvc-child-type </h4>
<div data-dojo-type="dojox/mvc/WidgetList"
data-dojo-props="children: at('rel:', 'companyList')"
data-mvc-child-type="dijit/form/CurrencyTextBox"
data-mvc-child-props="value: at(this.target, 'salary1'),
class: 'row'">
</div>
</div>
<h4>Declarative WidgetList using a dojox/mvc/InlineTemplate </h4>
<div data-dojo-type="dojox/mvc/WidgetList"
data-dojo-mixins="dojox/mvc/_InlineTemplateMixin"
data-dojo-props="children: at(sdata,'companyList')">
<script type="dojox/mvc/InlineTemplate">
<div>
<span type="text" name="salary1" required="true"
id="Salary1Id" placeholder="Salary Month One (e.g. 1234.00)"
trim="true" data-dojo-type="dijit/form/CurrencyTextBox"
data-dojo-props="value:at('rel:','salary1'),uppercase:true ,constraints:{fractional:true}, currency:'USD'"/>
</span>
</div>
</script>
</div>
<p>Updates to either set of CurrencyTextBoxes will be reflected in the other
</div>
经过对 dojox mvc
的一些研究,我能够根据记录的索引值将单个表单元素绑定到有状态数组对象,例如数组中的 0,1,2,3...。
这是一个有效的场景,开发人员可能正在使用一个数组对象,该对象在某些时候可能 return 一条记录而不是一个数组或多个记录。如果开发人员希望将该单个记录绑定到表单字段元素,他们可以使用索引一次访问一条记录并显示给用户。他们可以看看下面的解决方案。
数据 数据=新的状态({ 公司列表:[{id:1, salary1:300.00, salary2:200.00, salary3:400.00}] });
HTML
解决方案创建另一个访问数组记录索引的组:
<span data-dojo-type="dojox/mvc/Group" data-dojo-props= "target: at('rel:', 0)">
<span title="(a) Salary For Month One :" data-dojo-type="dijit/_WidgetBase"
data-dojo-props="target:at(data,'companyList')">
<span data-dojo-type="dojox/mvc/Group" data-dojo-props= "target: at('rel:', 0)">
<s:textfield type="text" name="salary1" required="true"
id="Salary1Id" placeholder="Salary Month One (e.g. 1234.00)"
trim="true" data-dojo-type="dijit/form/CurrencyTextBox"
data-dojo-props="value:at('rel:','salary1'),uppercase:true ,constraints:{fractional:true}, currency:'USD'"/>
</span>
</span>