问题标签 [kendo-mvvm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - KendoUI - 提取重复功能后未刷新 UI
我有一个视图模型,它有几个集合属性和一些重复的逻辑。我需要能够添加一个新的空对象,删除一个对象,并确保每个集合至少有一个对象,如果它是唯一的对象,则应该禁用“删除”按钮。
为了提取这些常用函数,我扩展了 k endo.data.ObservableArray
:
问题在于hasMoreThanOne
功能。当我创建一个包含单个元素的数组时,“删除”按钮被禁用 - 没关系 - 但是当我添加新元素时,它不会被启用。
要刷新 UIget
需要调用 kendo 的函数,但它需要一个引用属性名称的参数,该参数会因 的每个实例而异CoolObservableArray
,因此我需要为每个集合编写重复函数,例如deleteXXXEnabled
、deleteYYYEnabled
等。如何避免它?
这里是问题再现的小提琴:http: //dojo.telerik.com/AFOMa/2
javascript - 使用 MVVM 时如何在 viewmodel 中获取 Kendo 控件
我有一个简单的页面,其中包含一些这样的控件:
然后我做这样的事情来创建一个视图模型并绑定东西:
在页面中有多个控件,所以我将它们全部绑定。
虚拟机内部:
这可行,但我正在使用的面板栏上有方法和事件,我想使用它们。
到目前为止,如果我想使用 viewModel 中的内置方法和事件,我必须这样做:
如果我尝试抓取并检查 observable:
它没有剑道内置方法,只有我自己定义的方法。
由于我不想重新发明轮子并重新实现所有应该已经存在的方法,有没有办法让我的 ActionMenu 访问“kendoPanelBar”功能?
毕竟它们是相同的控件,我想一定有某种方法可以让它像这样工作:
有任何想法吗?此特定示例适用于 panelBar,但同样的问题适用于所有其他控件。提前致谢
kendo-ui - 无法使用来自另一个视图模型的 MVVM 在剑道下拉列表控件中获取文本
我有一个这样定义的简单下拉列表:
在另一个 div 中,我有一个简单的弹出窗口:
它都包裹在一个 ActionMenu div 下。
我的问题是我无法从 Window 视图模型中获取选定的文本:
如果我做这样的事情:
这总是返回第一个文本“选项 A”,而不是选定的文本。
这似乎是一件容易的事,但到目前为止,我不可能抓住选定的文本。
我也试过:
我也试过:
这是行不通的。
还
总是返回第一个选项。
我相信我的问题是我试图从另一个视图模型中获取一个视图模型的当前值。
任何想法如何做到这一点?
kendo-ui - 如何使用数据源数组?
我有数据源数组,我想通过数据绑定属性绑定
模板3:
视图模型:
我得到错误:
未捕获的 ReferenceError:未定义 y
kendo-ui - Kendo UI MVVM - 更改模型未触发 DataSource 更改事件
我有一个通过 MVVM 绑定到数据源的网格。
我在网格中选择一行,因此我使用这个:
其中“currentAccount”保存当前选定的行。此外,“currentAccount”绑定到要由用户编辑的表单。
现在,当我对表单字段进行更改时,它们不会自动反映在 Grid 上。我需要调用 grid.refresh() 才能在网格上显示更改。通过进一步调试,我注意到在视图模型中定义并用于 Grid 的数据源并没有触发它的 Change 事件!
但是,当用户按下“添加新记录”按钮时,以下内容用于在数据源内创建一个新的空模型,将 .add() 函数返回的这个新模型设置为“currentAccount”:
在上面,我添加了一个新的空行。一旦我开始编辑表单字段,它们就会自动反映在网格上,而无需调用 grid.refresh。甚至视图模型中定义的数据源也在触发它的更改事件。
知道为什么会出现这种行为吗?谢谢
javascript - Kendo UI TimePicker 确实会在 keyup 事件上引发更改事件
我有一个 TimePicker,我想绑定 keyup 事件。下面的代码不起作用。
当我通过手动编辑 TimePicker 文本框来更改 timePicker 时,永远不会引发 keyup 事件。只有当我使用选择按钮并选择日期时它才能正常工作。在 timepicker keyup 事件上永远不会引发 change 事件。
data-binding - 自定义 Kendo 小部件不更新 viewModel
我正在尝试自定义和扩展 datepicker。首先,我通过 customValue 扩展了 Binder:
然后我扩展了 DatePicker 小部件:
当视图模型更改时,会触发自定义绑定器的“刷新”方法,因此数据可以从视图模型流向小部件。它运作良好。但是我在从小部件绑定到视图模型(反向流)时遇到问题。起初我认为 datepicker 中的更改触发了“customValue”活页夹中的“更改”方法,但事实并非如此。触发了 CustomDatePicker.onChange 方法,但其中的视图模型超出了范围,因此无法设置视图模型。我的问题是,当小部件的值发生变化时,如何更新视图模型?感谢您的建议。
仅用于插图小部件的初始化如下:
javascript - 从 Kendo 视图模型数据容器中清除所有数据?
我正在尝试找到一种方法来清除剑道视图模型中数据容器中的所有数据。我的视图模型看起来像这样:
有没有办法将标记为“dataContainer”的容器内的所有数据点动态设置为空字符串或空字符串,同时保留现有结构?谢谢!
编辑:我想要的最终结果是清空 dataContainer 拥有的每个表中的数据点,所以它看起来像这样:
javascript - 在 Kendo MVVM 中将事件绑定到其他 UI 组件的功能
在 Kendo UI 中,引用另一个 UI 元素(小部件)功能的最佳实践是什么?MVVM 方式?
例如,假设我有一个网格和一个按钮。我希望按钮触发网格的 AddRow 功能。为此,假设我有以下 html:
我的视图模型看起来像:
取消注释行并像这样这样做有味道;它看起来并不是真正可观察的,而是一个纯 DOM 绑定事件。
另一种选择,例如将 _grid 作为属性或函数单独存储在我的视图模型中,似乎也同样低效。
但当然也有一些场景,如上面的伪示例所示,这可能是一厢情愿的。毫无疑问,我在这里看错了方向。因此,我们将不胜感激任何提示或最佳实践。