Angularjs选择,ng重复,不传递未定义的结果
我正在尝试执行一个简单的选择并将其传递给控制器中的console.log()。出于某种原因,它会导致“未定义”。我做错了什么 数据: 视图:Angularjs选择,ng重复,不传递未定义的结果,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,我正在尝试执行一个简单的选择并将其传递给控制器中的console.log()。出于某种原因,它会导致“未定义”。我做错了什么 数据: 视图: 事实上,我不知道这个问题的确切原因。但这是解决办法 当我们从视图本身动态创建模型属性时,就会出现这种情况 如果首先在控制器中声明范围变量并使用它,则不会出现问题 否则,如果需要动态范围变量,请在视图中将其声明为对象 比如说 <select ng-model="Obj.RPSelection" ng-options="selected.Update
事实上,我不知道这个问题的确切原因。但这是解决办法 当我们从视图本身动态创建模型属性时,就会出现这种情况
- 如果首先在控制器中声明范围变量并使用它,则不会出现问题
- 否则,如果需要动态范围变量,请在视图中将其声明为对象
<select ng-model="Obj.RPSelection" ng-options="selected.UpdateId as selected.Title for selected in selectList" />
我不知道确切的原因。但我有过很多次这样的问题。我猜,如果有任何复杂的html结构,或者html结构中有任何问题,我们就会变成这样 问题 实际上,在没有选择下拉菜单的情况下单击按钮时,出现了
未定义的错误。因为您没有设置默认的选定值。所以你有这个问题。您需要在控制器中设置默认选定值
解决方案
如果为RPSelection
对象设置默认值,问题就消失了。像
$scope.selectList = [{UpdateId : 1, Title:'A'},
{UpdateId : 2, Title:'B'},
{UpdateId : 3, Title:'C'}];
**$scope.RPSelection = 1;**
$scope.goToRosterProduction = function () {
alert($scope.RPSelection);// alert instead of console
console.log($scope.RPSelection)
}
需要更多的细节和更多的代码,不知道你还需要什么。选择是相当完整的。唯一缺少的是调用方法的按钮:goToRosterProduction()。当我在控制器中调用$scope.RPSelection时,没有传递任何内容。不依赖于此。您还需要什么?选择列表的值是什么?goToRosterProduction
函数的调用位置?添加选择关闭标记和名称属性:)
$scope.goToRosterProduction = function () {
console.log($scope.RPSelection)
}
<select ng-model="Obj.RPSelection" ng-options="selected.UpdateId as selected.Title for selected in selectList" />
$scope.goToRosterProduction = function () {
console.log($scope.Obj.RPSelection)
}
$scope.selectList = [{UpdateId : 1, Title:'A'},
{UpdateId : 2, Title:'B'},
{UpdateId : 3, Title:'C'}];
**$scope.RPSelection = 1;**
$scope.goToRosterProduction = function () {
alert($scope.RPSelection);// alert instead of console
console.log($scope.RPSelection)
}