2012-05-01 60 views
4

我裝修的標準文本輸入與jQuery插件標籤輸入,它本質上與文本區域,用戶可以寫標籤名稱替換我的HTML文本輸入綁定並按回車讓他們轉換爲離散的圖形標籤。 (見演示在http://xoxco.com/projects/code/tagsinput/定製ngModel指令支持模型 - >視圖jQuery插件

我放置ngModel指令在原來的文本輸入。

我能夠通過偵聽插件中的更改處理程序,解析來自原始文本輸入html標記的ngModel屬性並直接更新作用域,從而更新標記輸入字段中所做的更改。

但是,問題是,當Angular檢測到模型發生變化並使用綁定更新視圖時,它將原始文本輸入的值設置爲不會導致我可以綁定的任何事件以瞭解何時更新插件的值,因爲「更改」只會因用戶輸入而觸發。

有沒有修改默認ngModel指令的行爲有它觸發事件或跑我指定一個函數,當它正在處理綁定,專門從模型查看的方法嗎?

回答

1

你需要重寫ngModel。$渲染功能

 
directive.tabbable = function() { 
    return { 
    require: 'ng-model', 
    link: function(scope, element, attrs, ngModel) { 
     // do work to register the jQuery widget 
     ngModel.$render = function() { 
     // read ngModel.$viewValue and update the jQuery widget with it. 
     } 
    } 
    }; 
};