通过ng-change传递函数参数不起作用

时间:2015-09-30 13:06:18

标签: javascript angularjs angularjs-ng-change

我有一个对象数组,每个对象都有一个名称和url属性。我正在使用ng-options在选择列表中显示每个对象的name属性。

然后我使用ng-change来调用一个函数,并将所选对象的url作为函数参数。执行此操作时,我没有收到任何错误,但是当控制台在调用后记录函数中传递的参数时,它返回undefined。所以传递url作为参数的东西是行不通的。如果有人能指出我正确的方向,那就太好了。

这是html:

<div ng-controller="TaskChartCtrl">
  <select ng-model="selectedP" ng-options="project as project.name for project in projectList" ng-change="populateGraphs(project.url)">
    <option value="">Select A Project</option>
  </select>
</div>

这是控制器代码:

mod.controller("TaskChartCtrl", ["$scope", "$http", function ($scope, $http) {


    $scope.projectList = [];

    $http.get('https://api.freeagent.com/v2/projects',     config).then(function(response) {
        $scope.projectList = response.data.projects;
    });


    $scope.populateGraphs = function(projectUrl) {
        console.log(projectUrl);
        $scope.selectedP = projectUrl;
        //REST OF FUNCTION CODE USING $scope.selectedP
    }

get返回后projectList的示例:

$scope.projectList = [{
    'name':'projectName',
    'url':'projectUrl'
}, {
    'name':'projectName2',
    'url':'projectUrl2'
}, {
    ...
}]

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

尝试:

ng-change="populateGraphs(selectedP.url)"

选择的模型是selectedP,因此您希望从那里获取所选的值。