【问题标题】:per-page customization of the ion-nav-barion-nav-bar 的每页自定义
【发布时间】:2016-11-29 02:08:13
【问题描述】:

我想根据当前显示的视图更改 Ionic 1 单页应用程序的 ion-nav-barbackground-color

从默认的 ionic 代码生成器开始,应用的骨架在 menu.html 文件中,每个页面都有自己的 HTML 模板,以及自己的控制器。

如何从 HTML 模板或其控制器强制执行 ion-nav-barbackground-color

顺便说一句,如果有帮助的话,我已经成功激活了 SASS。

非常感谢!

【问题讨论】:

    标签: css angularjs ionic-framework


    【解决方案1】:


    嗯,有不同的方法可以用 Javascript 做到这一点。一种方法是

    <ion-nav-bar ng-style="{'background-color': $root.backgroundColor}"> </ion-nav-bar>

    然后在您想要不同颜色的每个视图中,您可以从控制器更改背景颜色:

    $rootScope.backgroundColor = 'yellow'

    您还可以使用在 CSS 中设置背景颜色的预定义类。还要更改控制器中的类名:

    $rootScope.backgroundClass = 'yellow-bg'

    <ion-nav-bar ng-class="$root.backgroundClass"> </ion-nav-bar>

    <ion-nav-bar ng-class="{$root.backgroundClass: true}"> </ion-nav-bar>

    并在 css 中,使用相应的类定义每种背景颜色

    .yellow-bg {background-color: yellow} .red-bg {background-color: red}

    如果你愿意,你可以为此创建一个指令。

    【讨论】:

    • 非常感谢您的帮助。不幸的是,它没有帮助。
    • 抱歉,输入太快了。请稍等以获取更多详细信息!
    • 我使用了类方法:1)在 ionic.app.scss 中定义了一些具有不同背景颜色的类。 2) 在 menu.html 中添加 ng-class 并相应地设置 rootScope。什么都没发生。但是,如果我在 menu.html 中设置 'class="yellow-bg"',那么它可以工作。所以看起来 $root 在控制器中更新 $rootScope 时没有更新。我还检查了 Chrome 检查器,它证实了我的假设。我试过 $rootScope.$apply() 但这会引发异常。
    • 我想我明白它为什么不起作用:menu.html 没有控制器,所以没有考虑到角度的东西。正确的?那你还有什么想法吗?
    • 对不起,又是我...实际上我错了,它看起来像根视图,嵌入导航栏,确实有一个名为 AppCtrl 的控制器。然后我不明白为什么它不起作用:-(
    猜你喜欢
    • 2017-01-11
    • 2015-02-12
    • 2017-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 2015-11-24
    相关资源
    最近更新 更多