Angular js中ng- select的问题
Issue with ng-slelect in Angular js?
我有一个类似
的数组JS:
$scope.array = [
{
"column":"productdivisiondes",
"dataType":"varchar",
"displayName":"Product 2"
},
{
"column":"productdivisiondes",
"dataType":"varchar",
"displayName":"Product3"
},
{
"column":"productdivisiondes",
"dataType":"varchar",
"displayName":"Product5"
}]
HTML代码: <select class="form-control inline"
ng-model="array[0]"
ng-options="option.displayName for option in array">
</select>
这是我正在处理的提琴
我想要默认的ng-model="product2"
在我的选择。完成了
我的问题是,如果我选择了product3或product5,那么我的下拉下拉值将更改为产品3,产品5,产品3。
TRY THIS CODE
<div ng-controller="MyCtrl">
Hello, {{name}}!
<select class="form-control inline"
ng-model="option.displayName"
ng-options="option.displayName for option in array">
</select>
<button class="btn btn-primary btn-sm p-l-6 p-r-6 p-t-3 p-b-3" ng-click="addToSearch(option.displayName)">
解决方案如下。
不要将ng-model
赋给现有数组的值。这也会更新数组。ng-model
不是一个变量。为ng-model
指定一个变量名,并通过
ng-model = "selected"
$scope.selected = $scope.array[0]
下面是演示
var myApp = angular.module('myApp',[]);
//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});
function MyCtrl($scope) {
$scope.name = 'Superhero';
$scope.array = [{"column":"productdivisiondes",
"dataType":"varchar",
"displayName":"Product 2"},
{"column":"productdivisiondes",
"dataType":"varchar",
"displayName":"Product3"},
{"column":"productdivisiondes",
"dataType":"varchar",
"displayName":"Product5"}]
$scope.selected = $scope.array[0] //initializing the ng-model
$scope.addToSearch = function(searchval) {
console.log(searchval, 'searchval')
}
}
<div ng-app="myApp">
<div ng-controller="MyCtrl">
Hello, {{name}}!
<select class="form-control inline"
ng-model="selected"
ng-options="option.displayName for option in array">
</select>
<button class="btn btn-primary btn-sm p-l-6 p-r-6 p-t-3 p-b-3" ng-click="addToSearch(array[0])">
Add
</button>
</div>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
根据我的理解,我认为你需要在第一时间显示默认的product2
选项。一旦你改变了选项的值,它就不会像在代码片段中那样起作用。将代码更改为
<select class="form-control inline"
ng-model="nameDisplay"
ng-options="option.displayName for option in array">
</select>
在控制器
function MyCtrl($scope) {
$scope.name = 'Superhero';
$scope.array = [{"column":"productdivisiondes",
"dataType":"varchar",
"displayName":"Product 2"},
{"column":"productdivisiondes",
"dataType":"varchar",
"displayName":"Product3"},
{"column":"productdivisiondes",
"dataType":"varchar",
"displayName":"Product5"}];
$scope.nameDisplay = $scope.array[0]; //Assign the first value of array
$scope.addToSearch = function(searchval) {
console.log(searchval, 'searchval')
}
}
你应该记住一件事。你在全局声明控制器。angular的>= 1.3
版本不再支持它。您的代码片段正在工作,因为您使用的是1.1
。如果你正在使用新版本,你应该看看这个声明。
你不应该使用数组值作为模型。
创建一个额外的变量来保存选定的值,并将其用作方法的参数。HTML
<div ng-controller="MyCtrl">
Hello, {{name}}!
<select class="form-control inline"
ng-model="selection"
ng-options="option.displayName for option in array">
</select>
<button class="btn btn-primary btn-sm p-l-6 p-r-6 p-t-3 p-b-3"
ng-click="addToSearch(selection)">
Add
</button>
</div>
JS
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
$scope.name = 'Superhero';
$scope.array = [{"column":"productdivisiondes",
"dataType":"varchar",
"displayName":"Product 2"},
{"column":"productdivisiondes",
"dataType":"varchar",
"displayName":"Product3"},
{"column":"productdivisiondes",
"dataType":"varchar",
"displayName":"Product5"}]
// variable to hold the selection
$scope.selection = $scope.array[0];
$scope.addToSearch = function(searchval) {
console.log(searchval, 'searchval')
}
}
相关文章:
- 在具有CONTENT标记的自定义元素中使用SELECT标记时出现问题
- Ember.Select的奇怪问题
- 寻找 Web 组件来解决这个问题(可能是 SELECT 或不知道)
- Select上通过Ajax将Javascript变量传递到PHP文件中的问题
- 使用jquery select all选项发出问题
- 使用Angular.js和PHP在select下拉列表中获取问题
- 使用jquery清除select字段,但呈现问题
- HTML & lt; select>焦点问题:使用Firefox需要2次点击来选择一个<选项>
- select .js关于无结果插件和允许默认链接行为的问题
- AJAX和Select的问题
- 在select元素上使用jQuery更改函数时出现问题
- & lt;销售:select>使用默认选项为空时,下拉问题
- 在SELECT字段中动态加载内容的问题[ANGULAR JS]
- Angular js中ng- select的问题
- AngularJS的ng-select和ng-switch-when问题
- Javascript表单验证问题(<SELECT>标记)
- 使用按钮时select中的AngularJS验证问题,但使用跨度时没有
- 关于使用jQuery连接两个Select Options val()的问题
- sqlite中select查询的循环问题
- 基于SELECT选项显示一个元素和隐藏其他元素时出现问题