我有一个面板可以在满足条件时显示。
<tab tabtitle="Servers ({{vm.dataServer}})" showtab="{{vm.dataServer != 0}}">
<recommendationitem type="server"></recommendationitem>
</tab>
在我的组件onInit
函数中,我正在做:
angular.module("myApp")
.component("myrecommendation", {
templateUrl: ".....",
controllerAs: "vm",
controller: ["$rootScope","$window","httpwrapper","$q", function($rootScope,$window,HttpWrapper,$q) {
var vm = this;
vm.tenant_id = '';
vm.tenant_account_name = '';
vm.$onInit = function() {
vm.dataServer = 0;
vm.dataNetwork = 0;
vm.dataLoadBalancers = 0;
promises = ..... //Setting promises here
$q.all(promises).then(function() {
$window.localStorage.setItem('selectedServers',JSON.stringify(arr));
vm.loading = false;
var servers = [];
if($window.localStorage.selectedServers !== undefined)
servers = JSON.parse($window.localStorage.selectedServers);
vm.dataServer = servers.length;
....
....
}
vm.otherFunction = function(){
....
....
}
return vm;
虽然$q
内vm.dataServer
设置为non-zero value
,但我认为它没有反映出来。{/ p>
为什么?
更新
当我不使用promises which I need to use as part of requirement
时,它会起作用。
vm.$onInit = function() {
// var servers = [];
// if($window.localStorage.selectedServers !== undefined)
// servers = JSON.parse($window.localStorage.selectedServers);
// vm.dataServer = servers.length;
// vm.editName = false;
更新2
有趣的是,当我没有声明变量
时 vm.$onInit = function() {
//vm.dataServer = 0;
//vm.dataNetwork = 0;
//vm.dataLoadBalancers = 0;
它会显示标签但不会显示计数标题中的Server ()
,vm.dataServer
需要打印{{1}}。我猜这里变得不明确。为什么这样?