使用侧边栏时离子控制器别名不起作用
Ionic controllers alias not working when using sidebar
我有一个使用 ionic framework 构建的应用程序,我按照 ionicframework 学习页面上的说明进行操作,现在我正在使用本机侧边菜单。问题是,我不能使用控制器别名。这是我的 app.js 的片段,其中包含路由配置:
angular.module('checklist-atendimento', [
'ionic',
'oc.lazyLoad',
'ngStorage',
'ngCordova',
'ngMask'
])
.config(function($stateProvider, $urlRouterProvider, $httpProvider) {
$urlRouterProvider.otherwise('/app/atendimento/1');
$httpProvider.interceptors.push('TratamentoDeErrosService');
$stateProvider
.state('app', {
abstract: true,
url: '/app',
views: {
'conteudo': {
templateUrl: 'app/templates/menu.html'
}
}
})
.state('app.inicio', {
url: '/inicio',
views: {
'menuContent': {
templateUrl: 'app/views/inicio.html',
controller: 'InicioController',
}
}
})
.state('app.atendimento', {
url: '/atendimento/:codMenu',
views: {
'menuContent': {
templateUrl: 'app/views/atendimento.html',
controller: 'AtendimentoController',
controllerAs: 'atendimentoCrl'
}
}
})
});
如您所见,我有 2 种状态,一种没有 controllerAs (InicioController),另一种使用 controllerAs (AtendimentoController)。
我在控制器里放了
$scope.test ="TEST!!!"
在视图中我输入了
<b>{{atendimentoCtrl.test}}<b>
如果我只使用 {{test}},什么都不会发生,但会显示文本。
有人知道怎么做吗?
编辑:
这里有一个例子在谈论什么:
在 item.html 上查看 ItemCtrl 内部和 index.html 内部。
我尝试对控制器使用别名,但它不起作用。
这里的问题只是一个错字...这是一个控制器状态
.state('app.atendimento', {
url: '/atendimento/:codMenu',
views: {
'menuContent': {
templateUrl: 'app/views/atendimento.html',
controller: 'AtendimentoController',
controllerAs: 'atendimentoCrl'
}
}
})
哪里可以看到'atendimentoCrl'
。这是一个视图语句
<b>{{atendimentoCtrl.test}}<b>
哪里可以看到atendimentoCtrl
(比较Ctrl
后缀和Crl
以上)
因此,controllerAs
中缺少t
你需要改变
$scope.test ="TEST!!!"
至:
this.test ="TEST!!!"
我有一个使用 ionic framework 构建的应用程序,我按照 ionicframework 学习页面上的说明进行操作,现在我正在使用本机侧边菜单。问题是,我不能使用控制器别名。这是我的 app.js 的片段,其中包含路由配置:
angular.module('checklist-atendimento', [
'ionic',
'oc.lazyLoad',
'ngStorage',
'ngCordova',
'ngMask'
])
.config(function($stateProvider, $urlRouterProvider, $httpProvider) {
$urlRouterProvider.otherwise('/app/atendimento/1');
$httpProvider.interceptors.push('TratamentoDeErrosService');
$stateProvider
.state('app', {
abstract: true,
url: '/app',
views: {
'conteudo': {
templateUrl: 'app/templates/menu.html'
}
}
})
.state('app.inicio', {
url: '/inicio',
views: {
'menuContent': {
templateUrl: 'app/views/inicio.html',
controller: 'InicioController',
}
}
})
.state('app.atendimento', {
url: '/atendimento/:codMenu',
views: {
'menuContent': {
templateUrl: 'app/views/atendimento.html',
controller: 'AtendimentoController',
controllerAs: 'atendimentoCrl'
}
}
})
});
如您所见,我有 2 种状态,一种没有 controllerAs (InicioController),另一种使用 controllerAs (AtendimentoController)。
我在控制器里放了
$scope.test ="TEST!!!"
在视图中我输入了
<b>{{atendimentoCtrl.test}}<b>
如果我只使用 {{test}},什么都不会发生,但会显示文本。 有人知道怎么做吗?
编辑:
这里有一个例子在谈论什么:
在 item.html 上查看 ItemCtrl 内部和 index.html 内部。 我尝试对控制器使用别名,但它不起作用。
这里的问题只是一个错字...这是一个控制器状态
.state('app.atendimento', {
url: '/atendimento/:codMenu',
views: {
'menuContent': {
templateUrl: 'app/views/atendimento.html',
controller: 'AtendimentoController',
controllerAs: 'atendimentoCrl'
}
}
})
哪里可以看到'atendimentoCrl'
。这是一个视图语句
<b>{{atendimentoCtrl.test}}<b>
哪里可以看到atendimentoCtrl
(比较Ctrl
后缀和Crl
以上)
因此,controllerAs
t
你需要改变
$scope.test ="TEST!!!"
至:
this.test ="TEST!!!"