AngularJS 选择在选择值后清除
AngularJS Select cleared after Selecting value
我有一个通过JSON/REST填充的选择。它按预期填充下拉列表,并为我提供将值发布到数据库时所需的值(ID),但是一旦我选择一个选项,它就会清除选择中的所有标签,因此如果我错误单击或看到所选内容的标签,我将无法选择其他标签。
这是我的 HTML:
<div ng-controller="pfcArticlePostCtrl">
<form ng-submit="createTask()">
<p>
<select data-ng-model="categoryoptions"
data-ng-options="opt as opt.label for opt in categoryoptions"></select> the value is {{categoryoptions.value}}
</p>
<p>
<input type="text" ng-model="articletitle"
placeholder="add new task here">
</p>
<p>
<textarea ng-model="articlesummary"
placeholder="add summary"></textarea>
</p>
<input type="submit" value="create">
</form>
这是我的控制器:
// Add new article
pfcControllers.controller('pfcArticlePostCtrl', ['$scope', 'pfcArticles', 'pfcArticleCategories', function ($scope, pfcArticles, pfcArticleCategories) {
var articleentry = new pfcArticles;
$scope.categoryoptions = [];
var articleCategoryNames = pfcArticleCategories.query(function () {
// Foreach category entry, push values into categoryoptions array
angular.forEach(articleCategoryNames, function (categoryvalue, categorykey) {
$scope.categoryoptions.push({
label: categoryvalue.categoryname,
value: categoryvalue.categoryid,
});
})
});
$scope.createTask = function () {
articleentry.articletitle = $scope.articletitle;
articleentry.articlecategoryid = $scope.categoryoptions.value;
articleentry.articlesummary = $scope.articlesummary;
articleentry.articlelink = $scope.articletitle.replace(/'s/g, "-").toLowerCase();
articleentry.$save();
}
}]);
这是因为您的ng-model
和选择选项 @ opt as opt.label for opt in categoryoptions
指向相同的属性。因此,当您从选择中选择值时,它会使用所选值(对象)设置ngmodel categoryoptions
,并且选项列表categoryoptions
也相同,因此您会看到它被清除,因为categoryoptions
不再是选择选项列表。对ng-model
使用不同的属性名称,反之亦然。
例:-
<select data-ng-model="selectedCategory"
data-ng-options="opt as opt.label for opt in categoryoptions">
</select>
或者将值设置为数组本身的属性,categoryoptions.selected
或强制执行点规则(如果需要)在控制器$scope.category = {};
中定义一个对象,并将 ng-model 设置为$scope.category.selected
相关文章:
- 如何在Angular中清除选择元素中的过滤器
- 当选择不同的父母时,我如何使条件形式的孩子消失并清除
- 单击“img”源时,文本选择未清除
- 如何在选择另一个列表框值时清除列表框值
- 使用 onChange 清除多个选择和复选框
- 如何防止在进行选择时清除文本框
- 如果“上一个”为空,则清除下一个嵌套的选择标记
- 使用JavaScript清除IE11中的文本框选择
- 如何清除:目标选择
- 在拖动之前清除内容选择的跨浏览器方法
- 挖空.js:清除选择元素中的选择
- AngularJS 选择在选择值后清除
- 清除选择更改()的超时
- 选择选择2的允许清除选项时如何捕获事件
- 清除搜索词,并在选择任何项目后重新加载 Select2 输入的所有项目
- 获取表单域以在选择单选按钮时清除
- 通过单击单选按钮清除所有选项选择条目
- 选择另一个对象应触发“之前:选择:清除”事件
- 选择2 -清除所有不工作的项目时,目标的职业
- 根据用户的选择清除命名范围-差不多了