亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

動態加載AngularJS控制器

動態加載AngularJS控制器

慕尼黑8549860 2019-07-30 11:30:17
動態加載AngularJS控制器我有一個現有的頁面,我需要刪除一個帶有可以動態加載的控制器的角度應用程序。這是一個片段,它根據API和我發現的一些相關問題實現了我應該如何完成的最佳猜測:// Make module Fooangular.module('Foo', []);// Bootstrap Foovar injector = angular.bootstrap($('body'), ['Foo']);// Make controller Ctrl in module Fooangular.module('Foo').controller('Ctrl', function() { });// Load an element that uses controller Ctrlvar ctrl = $('<div ng-controller="Ctrl">').appendTo('body');// compile the new elementinjector.invoke(function($compile, $rootScope) {    // the linker here throws the exception    $compile(ctrl)($rootScope);});JSFiddle。請注意,這是實際事件鏈的簡化,上面的行之間有各種異步調用和用戶輸入。當我嘗試運行上面的代碼時,$ compile返回的鏈接器拋出:Argument 'Ctrl' is not a function, got undefined。如果我正確理解了引導程序,它返回的注入器應該知道Foo模塊,對吧?相反,如果我使用一個新的注入器angular.injector(['ng', 'Foo']),它似乎工作,但它創建一個新的$rootScope,不再與Foo模塊被引導的元素相同的范圍。我使用正確的功能來做這件事還是我錯過了什么?我知道這不是以Angular方式進行的,但是我需要添加使用Angular的新組件到沒有的舊頁面,而且我不知道在引導模塊時可能需要的所有組件。
查看完整描述

3 回答

?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

我建議看看ocLazyLoad庫,它在運行時注冊模塊(或現有模塊上的控制器,服務等),并使用requireJs或其他此類庫加載它們。


查看完整回答
反對 回復 2019-07-30
  • 3 回答
  • 0 關注
  • 724 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號