Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.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
Angularjs选择,ng重复,不传递未定义的结果_Angularjs_Angularjs Ng Repeat - Fatal编程技术网

Angularjs选择,ng重复,不传递未定义的结果

Angularjs选择,ng重复,不传递未定义的结果,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,我正在尝试执行一个简单的选择并将其传递给控制器中的console.log()。出于某种原因,它会导致“未定义”。我做错了什么 数据: 视图: 事实上,我不知道这个问题的确切原因。但这是解决办法 当我们从视图本身动态创建模型属性时,就会出现这种情况 如果首先在控制器中声明范围变量并使用它,则不会出现问题 否则,如果需要动态范围变量,请在视图中将其声明为对象 比如说 <select ng-model="Obj.RPSelection" ng-options="selected.Update

我正在尝试执行一个简单的选择并将其传递给控制器中的console.log()。出于某种原因,它会导致“未定义”。我做错了什么

数据:

视图:


事实上,我不知道这个问题的确切原因。但这是解决办法

当我们从视图本身动态创建模型属性时,就会出现这种情况

  • 如果首先在控制器中声明范围变量并使用它,则不会出现问题
  • 否则,如果需要动态范围变量,请在视图中将其声明为对象
比如说

<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)
}