如何编写指令来更改另一个指令的隔离范围值

How to write a directive to change isolate scope value of another directive

我想扩展指令的功能。这是我的模板:

  <input type="text" color="ctrl.color" color-changer="" />

并且颜色指令是:

app.directive("color", [function() {
  return {
    scope: {
      color: "="
    },
    link: function(scope, iElement, iAttrs) {
      scope.$watch("color", function(){
        iElement.css("background-color", scope.color);
      });
    }
  };
}]);

我想编写一个指令(名为 color-changer)来在我关注 input 时更改另一个指令的颜色值。我该如何写这个指令。

PS: 我不想重新编译所有元素。它有效但非常慢。

PS:其实我想改变绑定到color属性的值来触发$watch

像这样的东西应该可以工作:

myApp.directive("colorChanger", [function() {
  return {
    scope: {
      colorChanger: "="
    },
    template: '<input type="text" ng-model="colorChanger">'
  };
}]);

看这里:http://jsfiddle.net/HB7LU/16774/

我终于解决了我的问题:

app.directive("colorChanger", ["$parse", function($parse){
  return {
    link: function(scope, iElement, iAttrs){
      iElement.on("focus", function(){
        scope.$apply(function(){
          $parse(iAttrs.color).assign(scope, "green");
        });
      });
    }
  };
}]);