gpt4 book ai didi

javascript - Dojo 数据绑定(bind)

转载 作者:行者123 更新时间:2023-12-03 11:36:28 25 4
gpt4 key购买 nike

我有一个使用 Dojo UI 构建的 Web 应用程序,当应用程序加载时,我调用 parser.parse() 来创建必要的小部件。我现在尝试从 Ajax 请求到 UI 进行数据绑定(bind)。我一直在看一个例子here但是我看到模型是在解析器之前设置的。

我需要能够从函数内设置模型并将其绑定(bind)到UI。由于我第二次调用 parser.parse() 我收到以下错误:

dojo/parser::parse() error
Error: Tried to register widget with id==xxxx but that id is already registered

还有一种方法我只能解析bindData函数并避免此错误?

预绑定(bind)函数

var model;

function bindData(data){
require([
"dojo/Stateful",
"dojo/parser"


], function( Stateful, parser){
model = new Stateful(data);

parser.parse();
});
}

执行查询按钮时调用的函数

if (getSelectedRadioButton('userOption') == 1){

if (!dijit.byId("employeeNumberId").value){
var employeeNumberId = dijit.byId("employeeNumberId");
dijit.showTooltip(
employeeNumberId.get('missingMessage'),
employeeNumberId.domNode
);
showNotificationDialog("okResponseNotificationDialog", 'Please Enter A Valid Employee Number Proceed', 'User Options');
return false;

}else{
showNotificationDialog("okResponseNotificationDialog", 'Please Wait While We Retrive Your Data', 'User Options');

dojo.xhrPost({
url: getEmployeeData,
postData: dojo.toJson({
employeeNumber: EmployeeId
}),
handleAs: "text",
headers: {
"Content-Type": "application/json",
"Accept": "application/json"
},
sync: true,
load: function (data) {

data = ({First: "John", Last: "Doe", Email: "jdoe@example.com"});

bindData(data);

},
error: function (error) {

showNotificationDialog('okResponseNotificationDialog', 'Contact Your HELP DESK : ' + error, 'Error');
}

});
}
}

JSP

<s:textfield required="true" name="Employee.firstname"
id="surname" placeholder="Your Firstname"
trim="true"
data-dojo-type="dijit/form/ValidationTextBox"
missingMessage="Please Enter Your Firstname!"
invalidMessage="Invalid Firstname!" title="(a) Firstname:"
style="width: 20em;" data-dojo-props="value: at(model, 'First.name'), uppercase:true, regExp:'^[`a-zA-Z ]+(([\,\.-][`a-zA-Z ])?[`a-zA-Z ]*)*$'"/>

最佳答案

是的,你不能调用 parser.parse() 两次。您可能应该使用 EditModelRefController 而不是仅使用 Stateful 模型,然后您应该能够使用虚拟数据进行初始设置,然后在可用时将其替换为真实数据。要查看替换模型的示例,您可以查看此处: https://github.com/dojo/dojox/blob/master/mvc/tests/test_mvc_new-data-replace-simple.html

关于javascript - Dojo 数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26473459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com