【问题标题】:Binding the scope with side menu does not work - ionic用侧面菜单绑定范围不起作用 - 离子
【发布时间】:2017-03-26 23:58:44
【问题描述】:

我想根据我的应用程序中的用户“角色”在菜单上显示 2 个不同的离子列表。

app.js

  .state('app', {
    url: '/app',
    abstract: true,
    cache: false,
    templateUrl: 'templates/menu.html',
    controller: 'AppCtrl'
  })

AppCtrl

.controller('AppCtrl', function($scope) {
  // EXAMPLE
  $scope.user = {
    name: "example",
    role: "client"
  };
})

menu.html

     <ion-list ng-if="user.role == 'manager' ">
        <ion-item menu-close href="#/app/search">
          MANAGER
        </ion-item>
        <ion-item menu-close href="#/app/songbook">
           ITEM A
        </ion-item>
      </ion-list>

      <ion-list ng-if="user.role == 'client' ">
        <ion-item menu-close href="#/app/search">
          CLIENT
        </ion-item>
        <ion-item menu-close href="#/app/search">
          ITEM B
        </ion-item>
      </ion-list>

问题是它没有渲染任何 ion-list !只是空的!
在我看来,角度没有绑定“scope.user” 有什么想法吗?

【问题讨论】:

  • 您是否收到任何控制台错误?
  • 不,即使我执行“console.log("Something");”从 AppCtrl 它不显示!!

标签: javascript angularjs model-view-controller ionic-framework


【解决方案1】:

您的控制器的范围是否包含您发布的 html 代码?

 <ion-list ng-if="user.role == 'manager' ">

如果控制器包含您的列表代码,

那你是不是先避免数组,比如

$scope.user_role == 'manager' 在控制器中,

ng-if="user.role == 'manager' 在 html 中。

据我所知,如果您将 xxx.html 插入到大型控制器中,则使用像您这样的数组是正确的(如果不是,数据可以通过 bot 到达插入的 html 文件中)

无论如何。有没有试过回避数组的时候能不能很好用,如果没有,原因一定是angularjs的范围没有达到你的post html代码

【讨论】:

  • 似乎 angular 没有到达我的 html 代码。但只是对于这个控制器,也许是因为“抽象”?因为我还有其他可以工作的控制器(不是抽象的)!
  • @IsmaHaro, "abstract" 听着像是不可信的东西,^.^ 去年我刚开始学习 angularjs 时遇到了很多问题。由于时间紧迫,我没有弄清楚其中的一些。但是,如果您在某些情况下成功了,也许您可​​以比较它们或重写上面的代码。希望你成功!
猜你喜欢
  • 1970-01-01
  • 2014-07-03
  • 2017-12-09
  • 1970-01-01
  • 2019-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
相关资源
最近更新 更多