将devextreme文本值绑定到角度模型(在keydown上)

我刚开始试用DevExtreme HTML组件。 目前,我正在尝试使用AngularJS和DevExtreme一个简单的搜索表单。

我想通过按回车来提交搜索表单。 问题是,小部件似乎只更新角模型,如果我标签出来的字段(大概onValueChanged事件)。

在下面的代码中,我观察到searchData.q的值仅在退出该字段时发生更改。 因此,当表单在onKeyChange事件中提交时,它使用的是以前的文本值。 对于文本框来说,这似乎有点违反直觉,绝对基本的角度不会像ng模型这样工作...

有谁知道如何解决它,所以价值是正确的约束?

<form id="HeaderSearchForm" ng-submit="search">
   <div dx-form="searchFormOptions"></div>
</form>
<pre>
{{searchData | json}}
</pre>

在角度控制器中:

app.controller('HeaderCtrl', ['$scope', 'authorityService', function ($scope, authorityService) {
  var execSearch, searchData = {}, searchFormOptions;

  $scope.searchFormOptions = {
    formData: searchData,
    items: [{
      dataField: 'q',
      label: {
        text: 'Search'
      },
      bindingOptions: {
        "formData.q": "searchData.q"
      },

      editorOptions: {
        mode: 'search',
        placeholder: 'Enter a search query',
        onKeyDown: function(e){
          var keyCode = e.jQueryEvent.which;
          if (keyCode === 13){
            search();
          }
        }
      }
    }]
  };

  search = function(){
    alert('searching for ' + searchData.q);
  };

  $scope.searchData = searchData;
  $scope.search = search;

}]);

valueChangeEvent选项对您的情况很有帮助。 将其更改为keydown

editorOptions: {
    mode: 'search',
    placeholder: 'Enter a search query',
    onKeyDown: function(e) {
        //...
    },
    valueChangeEvent: "keydown"
}

看到这个例子。

链接地址: http://www.djcxy.com/p/31109.html

上一篇: Bind devextreme text value to angular model (on keydown)

下一篇: DevExtreme and Aurelia integration