我是新手(Kendo UI&& MVVM)。
我正在尝试将下拉列表与本地数据库绑定,并在标记为//<<<<<<<<<
我在这里做错了什么? - 我已经看到了JayData上可用的示例,但它没有清楚地说明如何绑定本地数据库。
我的代码看起来像这样。
<div id="wrapper">
<div id="NESTForm">
<select data-role="dropdownlist" data-value-field="UserID" data-text-field="Name"
data-bind="source: userSource">
</select>
</div>
</div>
<script>
var userDB;
$(document).ready(function () {
$data.Entity.extend("Users",
{
UserID: { type: "int", key: true, required: true },
Name: { type: "string", required: true }
});
$data.EntityContext.extend("EXAMPLEDB", {
Users: { type: $data.EntitySet, elementType: Users }
});
userDB = new EXAMPLEDB({
name: "webSql", databaseName: "EXMPLEDB",
dbCreation: $data.storageProviders.DbCreationType.DropTableIfChange
});
var viewModel = kendo.observable({
//Initial data binders ,
userSource: userDB.Users.asKendoDataSource() //<<<<<< this throws error
});
// apply the bindings
kendo.bind(document.body.children, viewModel);
});
</script>
错误是
Uncaught TypeError: Object function (a,b){var c=this,d,e;c.trigger(w,{field:a}),a==="this"?d=c:(e=O[a]=O[a]||n.getter(a,!0),d=e(c),b&&typeof d=="function"&&(d=d.call(c)));return d} has no method 'push'
答案 0 :(得分:2)
好吧,我在JayData论坛上发布了相同的问题并想通了。虽然我从Jaydata下载了包,但是脚本文件已经过时了,社区建议我直接在SVN链接到脚本
仅为了记录,上面的代码工作正常。
这是社区回复
http://jaydata.org/forum/viewtopic.php?f=3&t=174&sid=2ff7d9f37bf758a573c70a89fac507fb
答案 1 :(得分:0)
我现在无法尝试,看起来没问题,除非你必须等待你的数据库做好准备,例如:
userDB.onReady(function() {
var viewModel = ...