情况: 我正在移植,或者我应该说尝试将 Lakshan Perera 的 Simple jQuery ColorPicker (https://github.com/laktek/really-simple-color-picker) 移植到 Angular。在查看了 SO 上的类似问题之后,似乎有些人通过控制器分配插件的范围,但正确的(Angular)方法是将插件包装在指令中。我越来越近了。我能够通过我的新自定义属性在我的视图中正确呈现插件,但我不确定如何设置指令以将输入值传递给属性的值(一个 ng 模型)。实际的输入更新,但 Angular 没有监听变化,因此实际上没有意识到输入值已经更新。官方文档在这里讨论了设置自定义属性(http://docs.angularjs.org/guide/directive),
所需的功能 -
<input my-widget="{{color}}" type="text"/> <!-- my-widget instantiates my directive -->
<h1 style="color:{{color}}"></h1> <!-- I would like the input value to dump into the attribute's value, in this case {{color}} -->
这是我到目前为止所拥有的:
app.directive('myWidget', function(){
var myLink = function(scope, element, attr) {
scope.$watch('element',function(){
var value = element.val();
element.change(function(){
console.log(attr.ngModel); // This is currently logging undefined
// Push value to attr here?
console.log( value + ' was selected');
});
});
var element = $(element).colorPicker();
}
return {
restrict:'A',
link: myLink
}
});
问题: 我该如何设置属性值来捕捉元素的更新值?