Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS加载时选择一个空选项_Javascript_Angularjs - Fatal编程技术网

Javascript 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

我是angularjs的新手,在这个问题上我真的需要帮助。

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将适合此问题。