我有一个使用离子框架构建的应用程序,我按照ionicframework学习页面上的说明进行操作,现在我正在使用原生的sidemenu。问题是,我不能使用控制器别名。这是我的app.js的snipet与路由配置:
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个状态,一个没有控制器(InicioController),另一个使用controllerAs(AtendimentoController)。
在控制器中我把
$scope.test ="TEST!!!"
在视图中我把
<b>{{atendimentoCtrl.test}}<b>
如果我只使用{{test}},则没有任何反应,但会显示文字。 谁知道怎么做?
编辑:
这里有一个谈论的例子:
在item.html中查看ItemCtrl和index.html内部。 我尝试使用控制器的别名,但它不起作用。
答案 0 :(得分:1)
这里的问题只是一个错字......这是一个控制器状态
.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
以上)
因此,t
controllerAs
答案 1 :(得分:1)
您需要更改
$scope.test ="TEST!!!"
为:
this.test ="TEST!!!"