可以使用$onChanges来监听组件绑定值的变化,并使用ngModelCtrl.$setViewValue在Link函数中更新指令的值。
示例代码:
//在组件控制器中定义绑定值 bindings : { content : '=', }, controller: function() { var $ctrl = this; $ctrl.$onInit = function() { //设置初始值为空 $ctrl.content = ''; }; $ctrl.$onChanges = function(changes) { //当绑定值发生变化时,更新组件控制器中的值 if(changes.content) { $ctrl.content = changes.content.currentValue; } }; }
//在Link函数中监听ngModel值的变化并更新指令的值 link: function(scope, elem, attrs, ngModelCtrl) { ngModelCtrl.$render = function() { elem.summernote('insertText', ngModelCtrl.$viewValue || ''); };
elem.on('summernote.change', function(we, contents) { scope.$apply(function() { //更新指令值 ngModelCtrl.$setViewValue(contents.trim()); }); }); }
注意:需要在指令中使用ngModel来进行双向绑定。