我有一个UI bootstrap Typeahead的问题。这是plnkr,解释如下。
http://plnkr.co/edit/lvy1Xu13xfFBjHbIY68H?p=preview
我希望能够从Typeahead列出的状态中选择一个状态,但也能够以相同的形式创建新状态,通过写入不存在的状态名称来创建属性名称和标志。
从Typeahead中选择状态时,一切都按预期工作。您选择整个对象,属性“state”和“flag”也会被选中。当您编写的字符串与Typeahead中列出的任何选项都不匹配时,会发生此问题。假设您想要使状态为“myState”然后ng-model是字符串而不是对象,就像从typeahead中选择一个选项而无法输入flag属性,因为您无法在字符串上创建属性。 / p>
有什么方法可以改变uib-typeahead设置或以某种方式更改ng-model,制作一些能够将ng-model从字符串更改为对象的功能,或类似的东西?
<input type="text" ng-model="customPopupSelected" placeholder="state" uib-typeahead="state as state.name for state in statesWithFlags | filter:{name:$viewValue}" typeahead-popup-template-url="customPopupTemplate.html" class="form-control">
<input type="text" ng-model="customPopupSelected.flag" placeholder="flag" class="form-control">
这是我想要实现的简化解释。当我从Typeahead中选择状态时,状态如下所示:
state = {
"name": "Arizona",
"flag": "9/9d/Flag_of_Arizona.svg/45px-Flag_of_Arizona.svg.png"
}
当我开始输入并键入不存在的状态时,state是一个字符串。
state = "myState"
所以我无法添加新的“state.name”,然后将“state.flag”属性添加到state对象。所以我想以某种方式解决这个问题,如果有可能的话,我可以自己创建状态。
state = {
"name": "myState",
"flag": "mystate-flag.svg.png"
}
答案 0 :(得分:0)
使用Uib-typeahead
添加typeahead-editable =“false”<input typeahead-editable="false" type="text" ng-model="customPopupSelected" placeholder="state" uib-typeahead="state as state.name for state in statesWithFlags | filter:{name:$viewValue}" typeahead-popup-template-url="customPopupTemplate.html" class="form-control">
<input type="text" ng-model="customPopupSelected.flag" placeholder="flag" class="form-control">
我希望这会对你有所帮助。
答案 1 :(得分:0)
您可以添加SELECT
count(*)
FROM `maw_qa.rt_content_secondly_*`
where _PARTITIONTIME = timestamp('2017-01-24');
:
$scope.$watch
这是您更新的plunker:http://plnkr.co/edit/jezOW8SEJUh59CzwFpr8?p=preview