У меня есть следующие проблемы: У меня есть функция внутри контроллера, а функция определяет значение $ scope.name
app.controller('myController', ['$scope', function($scope) {
function myFunction() {
$scope.name = 'myName';
}
document.getElementById('my-id').addEventListener("click", myFunction);
}])
Я не могу использовать нг щелкните по нескольким причинам. UPDATE: Я не могу использовать ng-click из-за галереи photoswipe и socialshare. Я хочу добавить пользовательский FB-ресурс, и если я использую ng-click, он закроет открытое изображение с фотографиями. См. Пример here. Откройте изображение и нажмите на верхнюю левую пользовательскую папку.
Обратите внимание, что даже если я использую здесь пример, он не свяжет мой объект $ scope.name с html.
Если я попытаюсь записать значение, оно работает как шарм, например.
console.log($scope.name); //will work perfectly
В HTML это не будет связывать значение:
<div ng-controller="myController">
<button id="my-id">
<p>{{name}}</p>
</button>
</div>
Вы никогда не должны напрямую взаимодействовать с DOM с контроллерами (т. Е. Нет 'document.getElement ...'). Этот вопрос сам по себе отвечает (цикл дайджеста обходит), но для получения реального углового ответа вам нужно изменить свой подход. Для этого нам нужно знать, какая у вас проблема с 'ng-click'. – deceze
Чтобы обновить область из области углов (собственный обработчик щелчка, обратный вызов jQuery), используйте '$ scope. $ Apply', но поскольку @deceze сказал, что вы делаете это неправильно. – ste2425
Я предлагаю вам открыть новый вопрос с подробностями о проблеме между 'ng-click' и photoswipe; это слишком неопределенно, что именно проблема, но я уверен, что нет причин, по которым это невозможно решить. – deceze