我正在開發具有可排序,可停靠,可浮動小部件的儀表板。我使用的一個控件在關閉body
標記之前,在DOM的底部生成浮動窗口小部件作爲HTML。這有效地消除了從控制器範圍中生成的窗口控件中執行的操作。如何使用ControllerAs語法手動更新AngularJS視圖?
我正在使用controllerAs
語法開發此儀表板控制器,但我無法弄清楚如何使用此語法有效更新視圖當外部組件執行影響視圖數據的操作時?
注意:這不是我唯一面臨的,迫使我手動更新主視圖。頁面上的其他位置也有指令執行影響視圖的操作。
理想情況下,我不需要手動更新視圖,因爲我將使用內置的Angular命令中影響摘要循環的所有命令 - 但這不是我的選擇。
所以...如果我用$scope
我將能夠簡單地做:
$scope.$digest
或者
$scope.$apply
但是我怎麼實現同樣影響使用控制器?
var vm = this;
vm.array = [item, item];
vm.something = something;
//External something changes something on a vm.variable
vm.update! //How??
使用'變種vm = this;'然後'vm。$ digest();'導致錯誤:'對象不支持屬性或方法'$ digest''。 – Blunderfest 2014-12-02 18:58:39
在這種情況下,我認爲你需要使用'$ scope。$ digest()'或'$ scope。$ apply()'。看看[這篇文章](http://www.johnpapa.net/do-you-like-your-angular-controllers-with-or-without-sugar/),它解釋了「$ scope」注入 – pasine 2014-12-02 19:44:28
我之前閱讀過這篇文章,並且我認爲它特別提到了$ scope的注入方式,以引用手錶或廣播,這讓我認爲可能有一種方法可以在沒有範圍的情況下應用更新。無論如何,應該是。 – Blunderfest 2014-12-02 19:49:34