gpt4 book ai didi

javascript - Ionic/AngularJs Controller 初始化 ng-init 不起作用

转载 作者:行者123 更新时间:2023-12-02 16:03:25 24 4
gpt4 key购买 nike

一旦记录我的 Controller 初始化脚本就不会调用:

转到https://billiving-qa.azurewebsites.net/accountant电子邮件:qa@billiving.com通行证:111111

当要管理帐户时,下拉列表为空。如果刷新(按 f5),列表就会填充。然后,如果您进入隐身模式或删除缓存并重新加载页面,列表将再次为空。

似乎初始化是在我的单页面应用程序生命周期的后期调用的。

这是我的代码:

<ion-view hide-back-button="true" ng-controller="DashboardCtrl" ng-init="Initialize()">


<ion-nav-title align-title="center">



<select ng-options="account.Key as account.Name for account in accounts" ng-change="LoadAccount(account)"
ng-model="account.Key">
<option value='' disabled selected>Select Account..</option>
</select>

<a style="cursor: pointer" ng-click="Initialize()">Refresh</a>


</ion-nav-title>

<ion-nav-buttons side="right">

</ion-nav-buttons>

<ion-nav-buttons side="left">
<button class="button button-icon button-clear ion-navicon" menu-toggle="left"></button>
</ion-nav-buttons>
<ion-content class="page page-dashboard is-pad" style="height:100%">


<iframe frameborder="5" class="frm" ng-src="{{trustSrc(url)}}" scrolling="yes"></iframe>


</ion-content>
</ion-view>

这是 angularjs 代码:

angular.module('myApp.controllers')

.controller('DashboardCtrl', function ($scope, $http, AppConfig, Utils, AuthService, $state, $sce) {
Utils.hideIndicator();
if (!AuthService.isLoggedIn()) {
$state.go('app.login');
return;
}

$scope.accounts = {};
$scope.account ={};
$scope.url = 'about:blank';

if (localStorage.SelectedKey!=null){
$scope.account.Key = localStorage.SelectedKey;
SetAccount($scope.account);
}


$scope.Initialize = function(){



Utils.showIndicator();
$http.get(AppConfig.endpoint + 'accountants/accounts')
.then(function (response) {
$scope.accounts = response.data;

if ($scope.accounts.length==0)
$state.go('app.register');

Utils.hideIndicator();
});
};


$scope.LoadAccount = function(account){
SetAccount(account);
};

function SetAccount(account) {
$scope.url = AppConfig.BaseAccount + "/Users/Index.aspx?userkey=" + account.Key;
localStorage.SelectedKey = account.Key;
}

$scope.trustSrc = function(src) {
return $sce.trustAsResourceUrl(src);
}



});

最佳答案

我在使用 Ionic 时遇到了同样的问题,那就是 ng-init 在第二次之后就不起作用了。这是因为框架内的缓存机制。它在某种程度上也很有用。但在某些情况下我们可能不需要这个功能。当我们应该重新加载整个 html 页面以使 ng-init 工作时,我们应该通过在 ion-view 中使用 cache-view="false" 禁用该单个页面的缓存。

引用:https://forum.ionicframework.com/t/ionic-beta14-how-to-clean-the-cache-for-a-specific-view/14277

关于javascript - Ionic/AngularJs Controller 初始化 ng-init 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30980060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com