我剛開始試用DevExtreme HTML組件。目前,我正在嘗試使用AngularJS和DevExtreme一個簡單的搜索表單。將devextreme文本值綁定到角模型(在keydown上)
我想通過按回車來提交搜索表單。問題是,小部件似乎只更新角模型,如果我標籤出來的字段(大概onValueChanged事件)。
在下面的代碼中,我觀察到searchData.q
的值僅在Tab鍵出現字段時發生更改。因此,在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;
}]);
發現這個問題:http://stackoverflow.com/questions/26842378/execute-default-event-before-custom-click-function - 試圖包裝在超時搜索功能,它的工作原理,價值更新之前函數調用,但似乎有點哈克。也許更好的方法? –