我正在使用angular-ui进行打字,我遇到了一些问题。具体来说,我正在看这个变量
typeahead-wait-ms $ (Default: 0) - Minimal wait time after last character typed before typeahead kicks-in.
我发现通过使用这个变量并将其设置为300毫秒左右,我已经大大减少了对后端的请求数量。这是一件好事。
但是,我现在需要在文本栏中的文本更新之前等待我返回的数据结构。
它有点像这样。
左侧带有“X”的术语是默认突出显示的内容。
1)
[foo] <----- current text in text bar
-X[foo] <----- original text {"text" : "foo"}
- [match 1] <----- match 1 {"text" : "match1"}
- [match 2] <----- match 2 {"text" : "match2"}
2)
[foo bar] <----- updated text in text bar
-X[foo] <----- note that the typeahead contents have not yet updated
- [match 1] <----- at this point we are fetching matches for "foo bar" from the backend
- [match 2]
3)
[foo bar] <----- updated text in text bar
-X[foo bar] <----- after the 300ms, the typeahead contents updates
- [match 3]
- [match 4]
我的问题是....当我在步骤2和3之间点击回车键时,内容没有从后端返回...所以而不是
function select($item, $model, $label) {
//$item.text = "foo bar"
这是文本栏中的术语,我得
function select($item, $model, $label) {
//$item.text = "foo"
这是内容更新前的最后一个“突出显示的术语”。
我试图比较ng-model变量......就像这样
// typeahead html
ng-model= "term"
typeahead-on-select="select"
// bound function
function select($item, $model, $label) {
alert($scope.term);
}
然后$ scope.term出现未定义。
现在,当我完全删除typeahead-wait-min时,请求的启动速度比我输入的速度快。所以这没关系...但我不想对用户输入的每个字符提出请求。
只是spitballing解决方案...有没有办法立即将原始搜索词放在结果中,然后在准备好时填写其余的结果?