Получение данных для двухстороннего связывания данных

Почему у меня нет доступа к данным из метода, определенного в методе onclick?

onclick: function(d, i) {
  $scope.country = d.name;
  console.log($scope.country);
}

Я хочу получить имя от объекта и показать в HTML <h1>Clicked: {{country}}</h1> Plunker

1 ответ

Решение

Внутри директивы country-item определена отдельная область. Итак, вам нужно передать страну в html:

<country-item country="country"></country-item>

Если вам нужно добавить такое же поведение при нажатии на панели диаграммы, вы должны добавить $scope.$ Apply() в обратный вызов onClick:

onclick: function(d, i) {
    $scope.country = d.name;
    $scope.$apply();
}

Цикл дайджеста завершен, и вам нужно сообщить Angular, что что-то изменилось.

Другие вопросы по тегам