В одном из моих приложений, построенных с использованием Ionic framework, у меня есть несколько файлов шаблонов, которые используются для отображения контента при нажатии кнопки «Next». Однако в некоторых случаях я хочу использовать тот же шаблон, но с другими данными (-else часть условия if-else в приведенном ниже коде js). Шаблон отображает правильные данные при первой загрузке. Однако, когда я нажимаю кнопку «next», нет никакого вызова, который сделан к контроллеру(AerodynamicCtrl), и я снова получаю те же данные (если часть условия). Также я читал о ion-view, но я не использовал его для своего кода. Не мог бы кто-нибудь помочь мне и подсказать, что я делаю неправильно здесь? Спасибо заранее.
мой код ниже —
html code — индекс.формат html
<ion-content>
<div class="list card">
<div data-id='{{q_no}}' class="item item-divider custom-question-title">
{{question_info.text}}
</div>
<div data-ng-include="getQuestionTemplate()"></div>
</div>
</ion-content>
getQuestionTemplate() в приведенном выше фрагменте кода извлекает мой шаблон на основе некоторого условия и отображает файл ниже
шаблоны / ion-aero.формат html
<div data-ng-controller="AerodynamicCtrl" class="spritespin" ng-init="init_aerodynamic_activity()"></div>
Код JS
app.controller("AerodynamicCtrl", ["$scope", "$localStorage", "$fileLogger", AerodynamicCtrl]);
function AerodynamicCtrl($scope, $localStorage, $fileLogger){
$scope.init_aerodynamic_activity = function(){
if($scope.question_info.category == 1){
$('.spritespin').spritespin({
// generate an array of image urls. This is a helper function that takes a {frame} placeholder
source: SpriteSpin.sourceArray('img/aero/{frame}.png', {
frame: [1,52] // this ramge of numbers is interpolated into the {frame} placeholder
}),
width: 480, // Specify the display width and height of the frame. // Optionally the size of the container can be defined with CSS.
height: 327,
responsive: true
});
} else {
$('.spritespin').spritespin({
// source: 'lib/threesixty-slider/assets/panorama.jpg',
source: 'img/aero/panorama.jpg',
width: 600, // this sets the width of the display. The panorama image must be larger than the below width
height: 300,
// select the modules
mods: [
'drag', // change frame on mouse drag
'ease', // enable the easing module. this will ease out the animation after mouse release, instead of a hard stop
'panorama' // the panorama display module
]
});
}
}
}
Либо удалите представление из кэширования на родительском
ion-view
теге:Или использовать одно из событий Ion view:
Второй вариант лучше, поскольку представление кэшируется, и у вас больше контроля над событиями, как описано здесь:
http://ionicframework.com/docs/api/directive/ionView/
Вы пытались ввести в маршрутизацию кэш свойств: false?
как: