2014-10-07 6 views
1

У меня есть несколько проектов, отображаемых в divs через ng-repeat. Каждый div содержит ссылку с идентификатором проекта.Угловой JS | Передача данных на 2 разных контроллера при нажатии

В основном я хочу связать свой идентификатор проекта с ng-click, чтобы обновить завод. Это позволит мне делиться идентификатором щелкнутого проекта с другим контроллером, который будет загружать только данные деталей проекта.

Вот мои проекты просмотра:

<div ng-repeat="detail in projects.details"> 
    <a ng-href="#!/project/project-details" ng-click="setId(detail.project_id)"><span></span></a> 
</div> 

Вот моя фабрика:

app.factory('getGoodIdProjectDetails', function(){ 
    var savedId = 1; //Default à 1 
    return { 
    getId : function() { 
     return savedId; 
    }, 
    setId:function(idGet){ 
     savedId = idGet; 
     return savedId; 
    } 
}  
}); 

Вот мои контроллеры:

function ProjectCtrl($scope, $http, $timeout, getGoodIdProjectDetails) { 
    $scope.setId = function (idGet) { 
     $scope.idProjectDetails = getGoodIdProjectDetails.setId(idGet); 
    }; 
} 

function ProjectDetailsCtrl($scope, $http, $timeout, getGoodIdProjectDetails) { 
    $scope.idProjectDetails = getGoodIdProjectDetails.getId(); 
} 

На мой взгляд консоль отображается ошибка например, я не могу привязать ng-click таким образом, но когда я проверяю вид, он сортирует меня, хорошая вещь, например ng-click="setId(8)"

Я хочу, чтобы завод обновлялся с хорошим идентификатором при нажатии. Затем я хочу получить доступ к этому id в projectDetailsCtrl, чтобы загрузить проект.

|| EDIT || : Я изменил ng-click, это отлично работает, все хорошо. Thx все

+0

Это идеальный случай для использования состояния системы на основе маршрутизации, как угловой-ui-маршрутизатор. В этом случае ваш id будет просто stateParam или (в зависимости от вашего сервера), частью вашего URL-адреса. – mccainz

ответ

3

попробовать это:

<div ng-repeat="detail in projects.details"> 
    <a ng-href="#!/project/project-details" ng-click="setId(detail.project_id)"><span>Voir le projet ></span></a> 
</div> 

вам не нужно использовать связывающее выражение {{}}, чтобы передать значения функций

Смежные вопросы