2015-09-30 2 views
0

У меня есть массив объектов, каждый из которых имеет свойство name и url. Я использую ng-options для отображения свойства имени каждого объекта в списке выбора.Передача аргумента функции через ng-change не работает

Затем я использую 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 
    } 

Образец projectList после доставай вернулся:

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

Любая помощь будет оценена.

ответ

1

Try:

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

Модель выбора является selectedP, так что вы хотите, чтобы получить выбранное значение там.

+0

А теперь это работает! Большое спасибо :) – Anton

+0

Рад слышать, что это помогло - пожалуйста, подумайте о том, чтобы принять мой ответ (зеленый галочку налево), если он сделал трюк для вас :) –