我有一个选择列表,其中填充了对象列表中的ng-repeat标记。每个对象的name属性显示在标记中。单击其中一个标记我想用ng-click调用一个函数,将这些对象的url属性作为参数传递。
填充部分工作正常,但看起来并不像参数的传递有效。代码如下:
html:
<div ng-controller="TaskChartCtrl">
<select>
<option ng-repeat="project in projectList" ng-click="populateGraphs(project.url)">{{ project.name }}</option>
</select>
</div>
控制器的相关部分:
myApp.controller("TaskChartCtrl", ["$scope", "$http", function ($scope, $http) {
$scope.projectList = {};
$http.get('URL', config).then(function(response) {
$scope.projectList = response.data.projects;
}, function(errResponse) {
console.error("Error fetching projectList");
});
$scope.populateGraphs = function(projectUrl) {
//FUNCTION CODE GOES HERE
}
}]);
有人能指出我正确的方向,我的错误在哪里吗?
非常感谢!
答案 0 :(得分:2)
由于您使用的是<select>
,因此您需要使用ng-change
代替ng-click
对ng-options
ng-repeat
代替<select>
参考:Select options through ng-click is not working in chrome browser using AngularJS
试试这个,在改变
的同时在populateGraphs函数中设置selectedProject<select ng-model="selectedProject" ng-options="project as project.name for project in projectList" ng-init="selectedProject = 'someProjectName'" ng-change="populateGraphs(selectedProject.url)">
<option value="">Select A Project</option>
</select>