2015-08-25 54 views
0

我想擴展指令的功能。這裏是我的模板:如何編寫指令來更改另一個指令的隔離範圍值

<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

+0

你可以採取相同的代碼,你打包在一個iElement [0] .on('焦點') – cfz42

+0

我認爲你需要從父作用域,父作用域可以是控制器或指令。 – atinder

+0

@clement_frndz這是我在這裏寫的簡單例子。其實我不能改變顏色指令。 – alisabzevari

回答

0

我終於成功解決我的問題:

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"); 
     }); 
     }); 
    } 
    }; 
}]); 
0

Soemthing像這應該工作:

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

在這裏看到:http://jsfiddle.net/HB7LU/16774/