2015-08-17 43 views
6

我正在寫作,希望找到如何在從瀏覽器擴展執行自動完成時觸發angularJS更新其模型。我知道其他一些應用程序(像LastPass這樣的密碼管理器)可以成功地完成這項工作Safari擴展 - 更新自動完成窗體上的angularJS模型

我正在構建一個小小的Safari擴展,它將幫助我自動完成Apple的(荒謬的)Sandbox用戶創建表單,該表單有10個輸入字段和幾個選擇器元素。

到目前爲止,我設法使用jQuery獲取輸入字段並使用.val()來設置它們的值。但是,這不會觸發angularJS更新其模型,所以即使輸入字段中有文本,angular認爲沒有文本,也無法驗證表單。

如果我可以訪問角度對象,可以很容易地解決這個問題,但我似乎無法做到這一點。當我嘗試訪問angular時,我的注入腳本返回undefined。所以我在想我要麼錯誤地檢索角度對象,要麼我應該以不同的方式解決這個問題。

要注意,我已經嘗試了一些在網絡上提到的其他技巧:input.trigger('input');和其他類似的東西。

+0

你有場ng模型集? – Jacques

+2

這是非常相關的:http://stackoverflow.com/a/11710295/1078450 – wesww

+0

@Jacques元素?我正在使用其他人制作的表單,我沒有創建自己的表單... – Andrei

回答

0

聽起來像你需要欺騙表單,認爲你實際上已經輸入了一些東西到輸入中,而不是設置輸入的值,我不相信導致焦點事件。嘗試使用JQuery來集中注意力,然後忽略輸入。這應該模擬用戶單擊輸入字段然後離開輸入字段。如果Apple以正確的方式構建了自己的形式,這應該會觸發驗證/模型更新。希望這可以幫助。