【发布时间】:2018-10-06 17:07:15
【问题描述】:
我从 AngularJS 更改为 KnockoutJS。至少我有一个问题,我已经花了两天时间。
<div class="form-group">
<label for="account">Konto:</label>
<select class="form-control" data-bind="options: accounts, value: account</select>
</div>
这是帐户:
self.account = ko.observable('Bargeldkonto');
当我定义这个我后来意识到的时候,这很有效。在我的情况下选择了第二个选项:
self.accountstest = ko.observable([]);
self.accountstest = ko.observable(['Avadis','Bargeldkonto','Bitcoin','Lohnkonto','Mietkaution','Sparen 3','Sparen 3 Kto. 2','Sparkonto Liam Noa','Sparkonto SQ','Trading SQ']);
但是这种方式是行不通的。总是第一个被选中:
self.accounts = ko.observableArray([]);
$.getJSON("entry_account_mysql.php", function(data) {
self.accounts(data);
//alert(JSON.stringify(data));
console.log("accounts: " + self.accounts());
});
我知道它与时间有关,但不知道在 KnockoutJS 中必须遵守它。 有人说 $getJson 不好。有趣的是,$.ajax 有效,但我现在在控制台中收到此错误:“主线程上的同步 XMLHttpRequest 已被弃用,因为它对最终用户的体验产生不利影响。”:
self.accounts = ko.observableArray([]);
$.ajax({
url: "entry_account_mysql.php",
async: false,
success: function(data) {
self.accounts(data);
}
});
回到 $.getJSON?但是怎么做呢?
【问题讨论】:
-
您的
<select data-bind="options: accounts, value: account>中缺少右引号字符和右括号。 -
抱歉,我现在看到了。但这是一个复制粘贴错误。我有一个右括号。
标签: ajax knockout.js getjson