0

在 lib/tool_bar.dart 的 ToolBar 类中

https://github.com/dzenanr/magic_boxes/blob/master/lib/tool_bar.dart

https://github.com/dzenanr/magic_boxes有两个元素

InputElement 项目名称输入;

SelectElement itemCategorySelect;

itemNameInput.onChange.listen((事件 e) {

itemCategorySelect.onChange.listen((事件 e) {

itemCategorySelect 的变化会触发 itemNameInput 的变化!?这种变化使工具的使用变得复杂。

我应该怎么做才能防止一个元素的变化触发另一个元素的变化?

在工具中,当为所选概念输入新属性时会发生这种情况:

通过在属性字段中输入其名称,可以将新属性添加到所选概念。使用 Enter 键查看概念属性中的名称。如果您想使用与建议不同的特性,请先更改它们,然后在属性字段中输入名称(我想避免这种情况。)

问题:如果您先输入一个属性名称而不使用 Enter 键,然后更改其至少一个特征(例如,属性类别),则该名称出现在概念的属性中,但没有更改的特征。然后,您必须选择它(通过再次输入其名称)才能应用更改。

4

1 回答 1

1

我找到了一个可行的解决方案:

改变

itemNameInput.onChange.listen((事件 e) {

itemNameInput.onKeyPress.listen((KeyboardEvent e) {

  if (e.keyCode != 13) return; // 13 is Enter key

这样,只有在按下 Enter 键后,属性名称才会出现在概念的属性中。

但是,在 Dart API 文档中,我发现 KeyboardEvent 已被弃用。

http://api.dartlang.org/docs/releases/latest/dart_html/KeyboardEvent.html

“注意:KeyboardEvent 接口在 DOM 级别 3 中已弃用,取而代之的是新的 TextInput 接口和相应的 textinput 事件,它们改进了对替代输入法的支持。”

我没有找到TextInput 接口,也没有找到textinput 事件!?

于 2013-06-22T16:16:32.830 回答