我是离子+ angularJS的新手...我已经创建了一个像这样的选择项下拉列表
<div class="list">
<div class="item item-input item-select">
<div class="input-label" >
Unit
</div>
<select id="unit">
<option selected>Kilometer</option>
<option>Mile</option>
</select>
</div>
</div>
我想用angularJS获得价值......我试过这个.. 当我点击一个按钮时,scope.convert即将到来。
$scope.convert = function() {
alert($scope.unit);
};
输出“undefined”..这是为什么?
答案 0 :(得分:1)
$scope.unit
实际上未在范围中定义,因此您获得undefined
。您必须在范围上定义unit
。由于这是一个角度应用程序,你可以采用角度方式。
在控制器中,您需要定义一个模型来保存所选的值。让我们调用此模型unit
就像你实际上要做的那样。因此,您可以将此模型初始化为控制器中的Kilometer
。
$scope.unit = 'Kilometer'
现在你需要一系列选项。这也可以在你的控制器中设置。
$scope.unitOptions = ['Kilometer', 'Mile']
我们使用范围将模型公开给视图,因此在您的视图中,您可以按以下方式访问此模型:
<select id='unit' ng-options="unit for unit in unitOptions">
您将获得“公里”和“英里”的下拉列表。您可以选择其中任何一个,并且您的模型unit
将会更新。
//This should now work
$scope.convert = function() {
alert($scope.unit);
};
注意:我在id
元素上留下select
属性,表明它与控制器中的模型无关。