如何编写指令来更改另一个指令的隔离范围值
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">'
};
}]);
我终于解决了我的问题:
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");
});
});
}
};
}]);
我想扩展指令的功能。这是我的模板:
<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">'
};
}]);
我终于解决了我的问题:
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");
});
});
}
};
}]);