Angularjs 更改控制器和指令之间的范围变量

Angularjs 更改控制器和指令之间的范围变量,angularjs,scope,directive,Angularjs,Scope,Directive,正如标题所说,我试图从指令和控制器更改范围变量。但它无法更改控制器/指令的值,以下是 如果您单击Change按钮,它将更改控制器中的两个范围变量 然后,当单击从控制器更改的按钮(现在是指令)时,它将更改下拉变量,但不会更改选择变量,更改按钮无法再次更改变量 我还尝试按所述传递变量,但没有 成功 指令: app.directive("drop", [function() { return { scope: true, restrict: 'A', link: fun

正如标题所说,我试图从指令和控制器更改范围变量。但它无法更改控制器/指令的值,以下是

如果您单击
Change
按钮,它将更改控制器中的两个范围变量

然后,当单击从控制器更改的
按钮(现在是指令)时,它将更改
下拉
变量,但不会更改
选择
变量,
更改
按钮无法再次更改变量

我还尝试按所述传递变量,但没有 成功

指令:

 app.directive("drop", [function() {
  return {
    scope: true,
    restrict: 'A',

    link: function(scope, element, attrs) {
      return element.bind('click', function(e) {
        scope.drop = "changed to drop";
        scope.select = "changed to select";
        scope.$apply();
      });
    }
  };
}]);
控制器:

function myController($scope) {
  $scope.drop = "Initial value";
  $scope.select = "Initial Value";
  $scope.selection = function() {
    $scope.drop = "changed from controller";
    $scope.select = "changed from controller";
  };
}
编辑:


更多测试表明,当更改指令中的范围变量时,控制器将无法再更改它。

删除指令的
范围
属性值,它将为指令提供它自己的范围

使用
范围:true
,这将创建一个子范围,该子范围通常从控制器范围继承。控制器范围更改将反映在子范围中,但不是相反around@devqon是删除作用域:true解析它,但在我的本地项目中,我镜像的是JSFIDLE中的内容,一旦单击指令事件,它将不起作用…+1它确实解析JSFIDLE示例。在我的本地机器中,我镜像的是JSFIDLE中的内容,一旦单击指令事件,它将不起作用。I我使用的是requirejs,不确定这是否会影响它