Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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_Ionic Framework - Fatal编程技术网

Javascript AngularJS获取范围中的选定项

Javascript AngularJS获取范围中的选定项,javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,我正在用Ionic和AngularJS开发应用程序。 无法计算如何获取所选选项的值 控制器 .controller('TestCtrl', function($scope, $options) { $scope.options = [ { id: 0, label: '15', value: 15 }, { id: 1, label: '30', value: 30 }, { id: 2, label: '60', value: 60 }

我正在用Ionic和AngularJS开发应用程序。 无法计算如何获取所选选项的值

控制器

.controller('TestCtrl', function($scope, $options) {
    $scope.options = [
        { id: 0, label: '15', value: 15 },
        { id: 1, label: '30', value: 30 },
        { id: 2, label: '60', value: 60 }
    ]

    $scope.countSelector = $scope.options[0];

    $scope.changeCount = function(obj){
        obj = JSON.parse(obj);
        console.log(obj)
        console.log(countSelector)
        $options.set('productCountPerPageValue', obj.value);
        $options.set('productCountPerPage', obj.id);
    };
    ...
})
模板

<ion-list ng-controller="TestCtrl">

    <label class="item item-input item-select">
        <div class="input-label">
            {{countSelector}}
        </div>
        <select ng-model="countSelector" ng-change="changeCount('{{countSelector}}')" ng-options="opt as opt.label for opt in options">
        </select>
    </label>

</ion-list>

{{countSelector}}
console.log(obj)始终返回以前选择的值


console.log(countSelector)始终返回默认值(如果已设置)或未定义的

当您执行
select ng model=“countSelector”
时,您将选择绑定到
$scope.countSelector

因此,在控制器内,如果希望访问选定的值,请使用以下命令:

$scope.countSelector
ng-options="opt.id as opt.label for opt in options"
编辑:

根据您的要求,您可能希望将值直接包含在$scope.countSelector中。为此,您可以根据以下情况调整ng选项:

$scope.countSelector
ng-options="opt.id as opt.label for opt in options"

您正在将countSelector的字符串版本传递给ng change函数。如果您查看html,它如下所示:

<select ng-model="countSelector" 
                  ng-change="changeCount('{&quot;id&quot;:1,&quot;label&quot;:&quot;30&quot;,&quot;value&quot;:30}')" 
                  ng-options="opt as opt.label for opt in options" class="ng-valid ng-dirty">

从技术上讲,可以通过不使用表达式将countSelector传递到函数中:

<select ng-model="countSelector" ng-change="changeCount(countSelector)" ng-options="opt as opt.label for opt in options">

正如@Deblaton Jean-Philippe answer所解释的那样,您可以通过范围访问它,因此实际上并不需要它