2016-11-22 22 views
0

我正在研究離子應用程序。 在我的模板之一,我有一個div,在其中我想加載其他模板之一。Cordova/Ionic-app可以將模板綁定到沒有狀態的控制器嗎?

裝載在controllers.js進行編程這樣的:

var panel_dynamic = document.getElementById('panel_dynamic'); 
    if (panel_dynamic.hasChildNodes()) { 
     panel_dynamic.removeChild(panel_dynamic.childNodes[0]); 
    } 
    var line = document.createElement("div"); 
    if(item.id == 9999) 
    { 
     $.get("templates\\type-of-test.html?Param=" + item.id, function (response) { 
      line.innerHTML = response; 
     }); 
     panel_dynamic.appendChild(line); 
    } 

,你可以看到我打開模板「類型的-的test.html」與一個名爲「panel_dynamic」 DIV中的參數。 不幸的是,在這種情況下,無法通過狀態(在app.js中定義)將我的模板與其控制器相連接。 我試圖用NG-控制器在我的模板「類型的-的test.html」這樣的,但沒有成功:

<ion-view view-title="Type of test" ng-controller="TypeOfTestCtrl"> 
    <ion-content class="padding has-header"> 

如何創建我的模板和控制器之間的參考? 在此先感謝!

回答

0

我認爲你正在尋找模型。像你描述這可能會解決你的問題: 用法:

<script id="my-modal.html" type="text/ng-template"> 
<ion-modal-view> 
    <ion-header-bar> 
     <h1 class="title">My Modal title</h1> 
    </ion-header-bar> 
    <ion-content> 
     Hello! 
    </ion-content> 
    </ion-modal-view> 
</script> 

的JavaScript:

angular.module('testApp', ['ionic']) 
.controller('MyController', function($scope, $ionicModal) { 
    $ionicModal.fromTemplateUrl('my-modal.html', { 
    scope: $scope, 
    animation: 'slide-in-up' 
    }).then(function(modal) { 
    $scope.modal = modal; 
    }); 
    $scope.openModal = function() { 
    $scope.modal.show(); 
    }; 
    $scope.closeModal = function() { 
    $scope.modal.hide(); 
    }; 
    // Cleanup the modal when we're done with it! 
    $scope.$on('$destroy', function() { 
    $scope.modal.remove(); 
    }); 
    // Execute action on hide modal 
    $scope.$on('modal.hidden', function() { 
    // Execute action 
    }); 
    // Execute action on remove modal 
    $scope.$on('modal.removed', function() { 
    // Execute action 
    }); 
}); 

或者,你可以參考this link

0

是的,它是可能的。爲此你需要使用模態。

對於開放模式 -

$ionicModal.fromTemplateUrl('templates/data.html', { 
    id:'data', 
    scope: $scope, 
    animation: 'none', 
    backdropClickToClose: false 
}).then(function(modal) { 
    $scope.modal = modal; 
    $scope.modal.show(); 
}); 

注意:無論你需要在HTML指定控制器,也可以使用從你已經打開了這個模式的控制器。

+0

對不起,我不想打開模式窗口,而是模板內的模板(包括控制器)。 –

相關問題