>我有以下问题:我在控制器中有一个函数,该函数决定 $scope.name 的值
app.controller('myController', ['$scope', function($scope) {
function myFunction() {
$scope.name = 'myName';
}
document.getElementById('my-id').addEventListener("click", myFunction);
}])
由于多种原因,我无法使用ng-click。更新:由于照片滑动图库和社交共享,我无法使用ng-click。我想添加自定义FB共享,如果我使用ng单击,它将关闭照片擦除打开的图像。请参阅此处的示例。打开图像,然后单击左上角的自定义共享按钮
请注意,即使我在这里使用示例,它也不会将我的 $scope.name 绑定到 html。
如果我尝试记录该值,它将用作魅力,例如。
console.log($scope.name); //will work perfectly
在 html 中,它不会绑定值:
<div ng-controller="myController">
<button id="my-id">
<p>{{name}}</p>
</button>
</div>
对于主题解决方案,问题是普通事件侦听器将绕过摘要周期。这意味着您的$scope
正在更新,但 Angular 不知道,因为触发更新的事件不在 Angular 的雷达上,因此 Angular 不会更新模板。此问题的(坏(解决方案是使用$scope.$apply
强制触发摘要。
但同样,这是一个非 Angular 解决方案,如果您修复ng-click
遇到的任何问题,您会好得多。