當我嘗試在電話中使用AngularJS打開模式時,我遇到了此問題。使用ng-include在另一個控制器中打開模式
我正在檢查設備的連接,如果設備處於脫機狀態,我需要打開一個模式。
我有我的index.html頁上的驗證碼
<script type="text/javascript" charset="utf-8" >
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
var $injector = angular.bootstrap(document, ['sms']);
var $controller = $injector.get('$controller');
var scope = $injector.get('$rootScope').$new();
var DeviceCtrl = $controller("DeviceCtrl", {$scope: scope});
scope.checkDevice(device.uuid, navigator.network.connection.type);
}
</script>
...
<div ng-controller="ModalCtrl" ng-include="'app/partials/modals.html'">
該腳本調用上DeviceCtrl
checkDevice
功能。好的在這一點上。
DeviceCtrl:
function DeviceCtrl($scope, $window, Device, $rootScope) {
$scope.checkDevice = function (deviceUuid, networkState) {
if (networkState == 'none') {
$rootScope.$broadcast('openConectionless');
}
}
而且我ModalCtrl:
function ModalCtrl($scope) {
$scope.$on('openConectionless', function() {
angular.element("#conectionModal").modal("show");
});
}
的openConectionless
監聽器被調用,但angular.element("#conectionModal").modal("show");
不影響模式。
注:如果我把conectionModal
DIV上的index.html和DeviceCtrl
,而不是$rootScope.$broadcast('openConectionless');
,模態開叫angular.element("#conectionModal").modal("show");
。 但我想將模態代碼移動到另一個html,以使代碼清潔。所以我創建了ModalCtrl。
有人能幫助我嗎?
嘗試使用'src'屬性'NG-包括SRC =「」應用程序/諧音/情態動詞。 '''' – charlietfl
@charlietfl我把'src ='像你一樣推薦,但是沒有解決問題。 –
'id = conectionModal'是否顯示在瀏覽器控制檯的實時html中? 'modal'是否已經初始化?如果'id = conectionModal'最初是在DOM中工作的,現在它正在加載AJAX,如果在加載頁面時自動初始化,bootstrap或其他模式插件將不會自動找到它 – charlietfl