AngularJS / bootstrap typeahead无法使用$ http.get call

时间:2015-10-10 23:31:53

标签: angularjs typeahead

我有一个代码如下的网页:

<input type="text"
       class="form-control"
       ng-model="asynchSelected"
       typeahead="e as e.employee.fullName for e in searchEmployees($viewValue)">

searchEmployees使用$ http.get()返回从Web API服务获取的json。返回的json看起来像这样:

[
    {
        "employee": {
            "id": 0,
            "fullName": "Scott Nelson"
        }
    },
    {
        "employee": {
            "id": 0,
            "fullName": "Stacy Tester"
        }
    },
    {
        "employee": {
            "id": 0, "fullName": "Suzy Schmoozy" 
        }
    }
]

我希望在输入文本框时看到一个动态创建的员工姓名下拉列表,但我什么都没得到......除了在浏览器调试器控制台上我看到了这个错误:

TypeError: Unable to get property 'length' of undefined or null reference

我认为我在typeahead中使用的表达式有问题,但我似乎找不到使用带有typeahead控件的Web服务提取的复杂json对象的好例子。

奇怪的是,如果我在名为“employees”的变量中对json进行硬编码,而不是尝试使用$ http.get()来返回它,使用如下代码:

<input type="text"
       class="form-control"
       ng-model="selected"
       typeahead="e as e.employee.fullName for e in employees | filter:$viewValue">

它正确显示了预先输入列表...... ?? 任何帮助将不胜感激。

0 个答案:

没有答案