【问题标题】:Ionic controllers alias not working when using sidebar使用侧边栏时,离子控制器别名不起作用
【发布时间】:2015-12-22 09:24:06
【问题描述】:

我有一个使用 ionic 框架构建的应用程序,我按照 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'
          }
        }
      })
  });

如您所见,我有两种状态,一种没有 controllerAs (InicioController),另一种使用 controllerAs (AtendimentoController)。

在控制器中我放了

$scope.test ="TEST!!!"

在视图中我放了

<b>{{atendimentoCtrl.test}}<b>

如果我只使用 {{test}},什么都不会发生,但会显示文本。 有人知道怎么做吗?

编辑:

这里有一个谈论的例子:

http://plnkr.co/ohL5HE

查看 ItemCtrl 内部和 index.html 内部的 item.html。 我尝试使用控制器的别名,但它不起作用。

【问题讨论】:

    标签: angularjs ionic-framework state angular-ui-router


    【解决方案1】:

    你需要改变

    $scope.test ="TEST!!!"
    

    到:

    this.test ="TEST!!!"
    

    【讨论】:

      【解决方案2】:

      这里的问题只是一个错字......这是一个控制器状态

       .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

      【讨论】:

      • 对不起,我的错误。在我的项目中,html 是正确的。这不是问题。
      • 嗯,这应该可以正常工作。如果您可以创建一些 plunker 并重现问题 (因为在这里您只是提供了“不相关”的信息) - 如果您愿意,我可以提供帮助...
      • 感谢您的回复!我提供了一个重现我的问题的示例,以改进问题以帮助您理解。
      猜你喜欢
      • 1970-01-01
      • 2011-07-27
      • 1970-01-01
      • 2021-12-30
      • 2019-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多