Html 在angular中动态获取下拉菜单的选项
主要问题是我有一个下拉菜单,它的选项应该动态更新。 工作流程如下: 我有一个Html 在angular中动态获取下拉菜单的选项,html,angularjs,drop-down-menu,Html,Angularjs,Drop Down Menu,主要问题是我有一个下拉菜单,它的选项应该动态更新。 工作流程如下: 我有一个input元素连接到一个名为toSubmit的ng模型,当长度超过3个字符时,应该触发一个http。get调用获取应该填充下拉菜单的列表。 因此,每当变量更改为submit时,此列表都会更改。让我们将此列表称为数据库(在控制器中,它是$scope.database) 我现在尝试的是一个非常简单的解决方案,它不起作用,很可能是因为包含下拉列表的HTMLDOM在一开始就加载了,并且没有跟踪选项中的更改 在我的控制器中,我有以
input
元素连接到一个名为toSubmit
的ng模型,当长度超过3个字符时,应该触发一个http。get
调用获取应该填充下拉菜单的列表。
因此,每当变量更改为submit
时,此列表都会更改。让我们将此列表称为数据库
(在控制器中,它是$scope.database
)
我现在尝试的是一个非常简单的解决方案,它不起作用,很可能是因为包含下拉列表的HTMLDOM在一开始就加载了,并且没有跟踪选项中的更改
在我的控制器中,我有以下部分监视提交:
$scope.toSubmit = '';
$scope.$watch('toSubmit',function(query){
if (query.length >= 3){
getQueryDatabases.companyNameService({'field':'name','query':query,'numberOfHits':'10'},'CIK').prom.then(
function(dataObject){
$scope.database = dataObject;
// dataObject.forEach(function(item){
// $scope.databaseString.push(item.cik + ' ' + item.companyName);
});
});
}
});
我的html如下所示:
<label for="nameCompany">Name:</label>
<input type="text" ng-model="toSubmit"></input>
<select ng-model="database" ng-options="line in database"></select>
名称:
现在我的想法是用ng Model
绑定数据库
,我会得到结果,但我很可能是错的。有人能帮我吗?我建议你使用它来处理服务器请求前限制输入等问题,并且具有很好的外观和可扩展性
您需要添加到您的项目中。
以下是您的代码:
Html:
如果返回的结果为零,我的示例还包含添加“创建公司”的逻辑。在本例中,position.company将在id字段中包含未找到的公司名称的文本,您可以在服务器端进行检查,并在分配id之前创建一个。
这种逻辑
if(!_.contains
条件。这令人困惑,因为您在下拉列表中的选择将覆盖列表。可能不应该让ng模型和ng选项指向同一个对象。
$scope.employerSelect2Options = {
minimumInputLength: 2,
query: function (query) {
var _query = query;
var companies = Restangular.all('companies').getList({query: query.term});
companies.then(function(data) {
var results = {results: []};
_.each(data, function(element, index, list) {
results.results.push({id: element.id, text: element.name});
})
if(!_.contains(_.map(data, function(element){ return element.name; }), _query.term)) {
results.results.push({id: _query.term , text: 'Create company "' + _query.term + '"'});
}
_query.callback(results);
})
}
};
if(!_.contains