Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 数据绑定在指令中的事件中不起作用_Angularjs_Angular Directive - Fatal编程技术网

Angularjs 数据绑定在指令中的事件中不起作用

Angularjs 数据绑定在指令中的事件中不起作用,angularjs,angular-directive,Angularjs,Angular Directive,我无法使数据绑定在此指令中工作。在事件处理程序中更改变量时,变量没有正确绑定 我做错了什么?> var myApp=angular.module('myApp',[]) .指令('inputTest',函数(){ 返回{ 限制:'E', 模板:'\ \ 子作用域:{{myValue}}\ ', 范围:{ myValue:“=”, }, 链接:函数(范围、元素、属性){ $(元素)。在('单击')上,函数(e){ 警报(“c”); scope.myValue='单击'; }); scope.myV

我无法使数据绑定在此指令中工作。在事件处理程序中更改变量时,变量没有正确绑定

我做错了什么?>

var myApp=angular.module('myApp',[])
.指令('inputTest',函数(){
返回{
限制:'E',
模板:'\
\

子作用域:{{myValue}}\ ', 范围:{ myValue:“=”, }, 链接:函数(范围、元素、属性){ $(元素)。在('单击')上,函数(e){ 警报(“c”); scope.myValue='单击'; }); scope.myValue='未单击'; }, }; }) 函数MyCtrl($scope){ $scope.myValue='parent value'; }
HTML

父作用域:{{myValue}
  • 不要忘记在事件处理程序的末尾调用
    $scope.$apply()
  • 由于原型继承的工作方式,第一级绑定可能无法按预期工作。如果您尝试了第一点,但仍然没有得到任何结果,请尝试将
    myValue
    放深一层:

    $scope.data.myValue = 'parent value';
    
    以及:

    
    

  • 浏览器控制台中有错误吗?没有,检查fiddle…Thx,行
    scope.myValue='notclicked'实际上可以工作,只有事件处理程序中的一个不能工作。您是否确实将
    $apply()
    调用放入了事件处理程序中?工作小提琴:不,我没有笑。但我不明白为什么它在事件处理程序外部工作,而不是在内部…
    $apply()
    告诉Angular重新计算监视的表达式,并在其中任何表达式发生更改时采取措施。Angular的事件(例如,
    ng单击
    )调用发动机罩下的
    $apply()
    。“外部”事件必须手动执行。
    <div ng-controller="MyCtrl">parent scope: {{myValue}}
        <input-test my-value="myValue"></input-test>
    </div>
    
    $scope.data.myValue = 'parent value';
    
    <input-test my-value="data.myValue"></input-test>