我的html文件中有这样的内容:
<select ng-model="selectedCar" ng-change="changedValue(selectedCar)" ng-options="x.license for x in fhu.carList" >
<option value="">Select Car</option>
</select>如何并将changedValue函数放在我的控制器内?我在这个角度和JavaScript上有点新,所以一个具体的例子会很好。我的控制器在下面,下拉列表填好了.almost。但这是另一个问题,在这一点上,选择变化函数更重要。
(function() {
var app = angular.module("fhu", []);
app.controller("FhuController", function(){
this.carList = cars;
});
$(document).ready(function(){
var car = {};
$.getJSON("fillingapi.php?action=get_cars",function(data){
var i=0;
for(i=0;i<data.length;i++){
cars.push( {license: data[i].license, descr: data[i].descr});
}
});
});
var cars=[];
})();发布于 2017-07-29 10:35:03
要回答您的问题:“在我的控制器中放置changedValue的位置”,您已经做了ng-model="selectedCar“。角斗士会帮你更新的。因此,在您的控制器,您可以做$scope.selectedCar,并得到汽车,是从下拉选择的。
来解释一下:
我用工作例子做了一个柱塞:https://plnkr.co/edit/1xqvFVTed9I7lJj9NkFH?p=preview
var app = angular.module('fhu', []);
app.controller('FhuController', function($scope, CarService) {
$scope.selectedCar;
CarService.getCars().then(function(listOfCars) {
console.log(listOfCars);
$scope.carList = listOfCars;
});
$scope.changedValue = function() {
alert('You just selected '+ $scope.selectedCar.licence);
}
});
app.factory('CarService', function($http) {
const getCars = function() {
return $http.get('https://www.rantakallio.fi/fillherup/fillingapi.php?action=get_cars');
};
return { getCars };
});让我们看一看代码:
查看CarService.getCars()行。getCars是名为CarService的工厂中的函数。我让它返回一个简单的承诺,您需要使用$http compnent (它的注释掉了)。
我只需返回承诺并在控制器中展开它,并将值放入我的carList变量。当角看到变量已经改变时,它将为您更新视图。当您从select列表中进行选择时,也会发生同样的情况。因为您将ng- model ="selectedCar“放在视图中,angular将为您更新模型。因此,您可以在控制器中使用它来做一些事情。
在代码示例中,您可以看到不需要将值传递给函数。你只需阅读$scope.selectedCar
https://stackoverflow.com/questions/45387301
复制相似问题