Angularjs 指令'中未更新模型;s点击事件

Angularjs 指令'中未更新模型;s点击事件,angularjs,angularjs-directive,angularjs-scope,Angularjs,Angularjs Directive,Angularjs Scope,我有以下代码行 HTML ... <html ng-app="myApp"> .... <div ng-controller="myController"> <div ng-model="info.myField"></div> <a href="#" my-update field="info.myField">Update Me</a> </div> 当我运行此代码时,控制器的info.my

我有以下代码行

HTML

...
<html ng-app="myApp">
....
<div ng-controller="myController">
    <div ng-model="info.myField"></div>
    <a href="#" my-update field="info.myField">Update Me</a>
</div>
当我运行此代码时,控制器的info.myField被更新为“updated in link”(在指令的A行中完成)。当我点击“更新我”锚时,指令的B行被执行,但控制器的info.myField没有被更新

为什么单击事件中未更新info.myField?我错过了什么吗?

试着这样做

elem.bind("click",function() {
           $scope.$apply({
              scope.field = "Updated on click";   //Line B
          });

 });

Jayantha是正确的,您应该调用
$apply()
使其工作。但你可能会问为什么你必须这么做。原因是,
点击事件发生在Angulars世界之外。因此Angular不知道
单击发生了什么,您需要告诉Angular,您可以通过调用
scope.$apply()
来实现这一点。当您有一个调用作用域上的方法的
ng单击时,您不必调用
$apply()
,因为它是Angular为您调用该方法的,这意味着Angular知道它,并将为您调用
$apply()

+1解释答案。唉,我无法同时将两个答案标记为正确。
elem.bind("click",function() {
           $scope.$apply({
              scope.field = "Updated on click";   //Line B
          });

 });