Javascript AngularJS加载时选择一个空选项
我是angularjs的新手,在这个问题上我真的需要帮助。Javascript AngularJS加载时选择一个空选项,javascript,angularjs,Javascript,Angularjs,我是angularjs的新手,在这个问题上我真的需要帮助。 csApp.controller('expensesCtrl',函数($scope,$http){ $scope.getExpenses=函数(){ $http.post('/Home/ExpensesTableList')。然后(函数(响应){ $scope.vendorList=response.data.csVendors; $scope.list=response.data.csExpenses; }); }; $scope
csApp.controller('expensesCtrl',函数($scope,$http){
$scope.getExpenses=函数(){
$http.post('/Home/ExpensesTableList')。然后(函数(响应){
$scope.vendorList=response.data.csVendors;
$scope.list=response.data.csExpenses;
});
};
$scope.getExpenses();
});
//返回的json
{“csExpenses”:[{“vendorNo”:1}],
“CSvendorno”:[{“vendorNo”:1,“vendorName”:“Aliexpress”},{“vendorNo”:2,“vendorName”:“DHGate”}]}
将
vendor.vendorNo设置为vendor.vendorName
内部ng选项
<td>
<select ng-model="item.vendorNo" ng-options="vendor.vendorNo as vendor.vendorName for vendor in vendorList" ng-selected="true"></select>{{item.vendorNo}}
</td>
{{item.vendorNo}}
将vendor.vendorNo设置为vendor.vendorName
内部ng选项
<td>
<select ng-model="item.vendorNo" ng-options="vendor.vendorNo as vendor.vendorName for vendor in vendorList" ng-selected="true"></select>{{item.vendorNo}}
</td>
{{item.vendorNo}}
ng选项的语法可能会非常混乱,但在您的情况下,实际是将整个对象输出到ng模型
,但您的ng模型
设置为仅输出一个属性
进一步细分ng选项
:
vendor.vendorname //sets the text to display in the list
for vendor // sets what gets output for each row
in vendorList // sets what gets iterated
track by vendor.vendorNo //sets the order the list is displayed.
有一个as
子句允许您输出特定属性,但通常不需要。另外,select as
和track by
也不能一起使用。
因此,基于此,您实际上需要设置ng model=“item.vendorNo”
,而不是设置ng model=“item”
var-app=angular.module('plunker',[]);
应用程序控制器('MainCtrl',函数($scope){
var json={
“CSE费用”:[{
“文多诺”:1
}],
“CSF供应商”:[{
“文多诺”:1,
“vendorName”:“Aliexpress”
}, {
“文多诺”:2,
“vendorName”:“DHGate”
}]
}
$scope.vendorList=json.csVendors;
$scope.list=json.csExpenses;
$scope.change=函数(){
log($scope.list);
}
});代码>
安古拉斯普朗克
文件。写(“”);
ng选项的语法可能会非常混乱,但在您的情况下,实际是将整个对象输出到ng模型
,但您的ng模型
设置为仅输出一个属性
进一步细分ng选项
:
vendor.vendorname //sets the text to display in the list
for vendor // sets what gets output for each row
in vendorList // sets what gets iterated
track by vendor.vendorNo //sets the order the list is displayed.
有一个as
子句允许您输出特定属性,但通常不需要。另外,select as
和track by
也不能一起使用。
因此,基于此,您实际上需要设置ng model=“item.vendorNo”
,而不是设置ng model=“item”
var-app=angular.module('plunker',[]);
应用程序控制器('MainCtrl',函数($scope){
var json={
“CSE费用”:[{
“文多诺”:1
}],
“CSF供应商”:[{
“文多诺”:1,
“vendorName”:“Aliexpress”
}, {
“文多诺”:2,
“vendorName”:“DHGate”
}]
}
$scope.vendorList=json.csVendors;
$scope.list=json.csExpenses;
$scope.change=函数(){
log($scope.list);
}
});代码>
安古拉斯普朗克
文件。写(“”);
您的ng选项
错误,它正在输出对象并将其分配给项。vendorNo
;您可能只想将其输出到项目
。您的ng选项
错误,它正在输出对象并将其分配给项目。vendorNo
;您可能只想将其输出到项
。这可能会起作用,但这并不是必需的,也不是ng init
的正确用法,也不能真正解决实际问题;OP可能会在selectedItem
中看到与原始模型相同的意外值。@Claies我已经更正了我的答案。请检查更新的答案。我认为将VendorNo设置为VendorName将适合此问题。这可能会起作用,但实际上没有必要,对于ng init
,这不是一个正确的用法,也不能真正解决实际问题;OP可能会在selectedItem
中看到与原始模型相同的意外值。@Claies我已经更正了我的答案。请检查更新的答案。我认为将VendorNo设置为VendorName将适合此问题。