Javascript 角度模板不在角度模板中时显示元素

Javascript 角度模板不在角度模板中时显示元素,javascript,jquery,angularjs,angularjs-directive,Javascript,Jquery,Angularjs,Angularjs Directive,我有一个上面有class指令的输入框。在输入框delement中,我希望有另一个带有ng show的元素。如何使范围变量在内部元素上可用 <div class="medium-2"> <label>Age:</label> </div> <div class="medium-10"> <input type="text" class="form-control pop-up-variables" name="age"

我有一个上面有class指令的输入框。在输入框delement中,我希望有另一个带有ng show的元素。如何使范围变量在内部元素上可用

<div class="medium-2">
   <label>Age:</label> 
</div>
<div class="medium-10">
   <input type="text" class="form-control pop-up-variables" name="age" error-message="ageErrorMessage" required>
   </input>
</div>

chnge作用域必须通知angular运行摘要以更新视图的angular上下文之外的事件

如果您使用了
ng按键
,它将在内部执行,否则使用
$apply
$timeout

link: function (scope, element, attrs, ngModelCtrl) {
    element.on('keypress', function(event) {
      if (event.which === 64) {            
        scope.showInnerBlock = true;
        $scope.$apply()
      }
    });
  }

嘿,Charlietfl,那还是不起作用。这是否可能:内部元素可以访问范围?可能在typeahead指令上遇到孤立作用域的问题。你的用户界面很复杂,在一个输入上做了很多事情。。。一个plunker演示真的很有用谢谢!这是一个孤立的范围问题,因为当我在代码的返回中注释掉范围时,它起作用了。(我试着只放一个简单的版本,让它更可读)。因此,我想下一个问题是,我如何能够使用一个独立的作用域,但仍然传递正确的scope.showBlock值?我会假设“=”会这样做,但事实并非如此
  app.directive('popUpVariables', function() {

    return {
      restrict: 'C',
      controller: function($scope) {
        $scope.numbers = ['One', 'Two', 'Three', 'Four', 'Five'];
        },
      link: function (scope, element, attrs, ngModelCtrl) {
        element.on('keypress', function(event) {
          if (event.which === 64) {
            // This is where I want to show the second input
            scope.showInnerBlock = true;
          }
        });
      }
   }
})
link: function (scope, element, attrs, ngModelCtrl) {
    element.on('keypress', function(event) {
      if (event.which === 64) {            
        scope.showInnerBlock = true;
        $scope.$apply()
      }
    });
  }