Angular View 绑定未使用简单布尔值更新

2024-03-29

再见,这可能是一个菜鸟问题,但我无法让它发挥作用。

我有一个简单的服务,可以切换布尔值,如果布尔值为 true,则活动类应该出现在我的 div 上,如果为 false,则没有类......就这么简单。但是布尔值已更新,但我的视图没有对此做出反应。我是否必须以某种方式通知我的视图某些内容发生了变化?

服务:

import { Injectable } from '@angular/core';

@Injectable({
  providedIn: 'root'
})
export class ClassToggleService {

    public menuActive = false;

    toggleMenu() {
      this.menuActive = !this.menuActive;
    }
}

查看(左侧菜单组件):

 <div id="mainContainerRightTop" [class.active]="classToggleService.menuActive == true">

切换点(顶部菜单组件):

<a id="hamburgerIcon" (click)="classToggleService.toggleMenu()">

这是因为您正在更改服务上的值而不是组件上的值,因此 Angular 不需要更新组件,因为它没有更改。如果您想在修改服务元素时更新组件的视图,则必须使用可观察对象和主题,并订阅它们。这样当元素发生变化时,它会自动通知所有订阅的组件。

@Injectable({
  providedIn: 'root'
})
export class ClassToggleService {

    public menuSubject: Subject<boolean> = new BehaviorSubject<boolean>(false);
    public menuActive = this.menuSubject.asObservable();
    toggleMenu(val : boolean) {
      this.menuSubject.next(val);
    }
}

在您的组件中,只需实现 OnInit 接口并订阅服务中的可观察对象:

public localBool = false;
ngOnInit() {
   this._myService.menuActive.subscribe(value => this.localBool = value);
}
ComponentToggleMenu() {
   this._myService.toggleMenu(!this.localBool);
}

然后你的html:

    <div id="mainContainerRightTop" [class.active]="localBool">
   <a id="hamburgerIcon" (click)="ComponentToggleMenu()">
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular View 绑定未使用简单布尔值更新 的相关文章

  • Internet Explorer 8 不会修改打印样式表中的 HTML5 标记

    我之前正在制作打印样式表 并遇到了 IE8 的问题 我正在使用 HTML5 和几个布局标签 包括页眉 导航和页脚 由于某种原因 在我的打印样式表中显示 无 这些标签上的声明在 IE8 中被忽略 我只能假设后续的较低版本 我首先认为 IE9
  • jQuery text() 的替代方案包括元素之间的空格?

    我在容器中有一些任意的正文文本 我不控制它 所以我不知道它的结构 但像这样的事情 div h1 Heading h1 p A paragraph or two p ul li item 1 li li item 2 li ul div 这只
  • 对 Angular 2 中提供的 @NgModule 感到困惑

    我正在尝试玩 Angular2 当我将基本代码升级到 Angular 2 0 0 RC5 时 我发现引入了一个重大更改 NgModule 它相当于角度模块 在 Angularjs 1 x 中 对我来说 ngModule 让事情变得复杂 当我
  • CTYPE_ALNUM 的奇怪之处

    我的 PHP 函数 CTYPE ALNUM 有一个奇怪的问题 if i do PHP words if ctype alnum words Echo Don t work else Echo Work 这将回显 工作 但是如果我有一个表格
  • 如何将 HTML 代码转换为 JSON 对象?

    我正在构建一个 Angular 7 应用程序 在此应用程序中 我让用户编辑 HTML 然后我希望将其转换为 JSON 以便以有意义的方式存储它 简而言之 我想获取任何 HTML 代码并将其处理为 JSON 对象 我怎样才能做到这一点 我会将
  • 如何延迟forkJoin

    你会怎样拖延 forkJoin 在 rxjs 中 这是我已经拥有但想使用的delay https www learnrxjs io operators utility delay html运营商用那个 return forkJoin thi
  • 如何根据请求打开多个浏览器窗口? (PHP)

    所以我有一个表格PHP HTML页 用户将其提交给同一PHP HTML页 现在我将拥有 PHP 页面 POST数据 我想在刷新页面时选择一些弹出浏览器窗口 其中 url 将相对于用户POST要求 喜欢www example com bal
  • 未将焦点设置到 Firefox 中的文本字段

    我遇到了一个非常有趣的问题 我正在尝试设置focus在使用 Javascript 的输入字段上 没有 jQuery 我也尝试过但没有成功 使用window onLoad 看看这个小提琴 加载时设置焦点 http jsfiddle net r
  • Angular 6 中只允许带一位小数的正数

    我是堆栈溢出的新手 所以如果我有任何错误 请原谅我 我在 Angular 6 中遇到了这个问题 我几乎没有数字和文本类型的输入字段 我想阻止用户输入 以外的任何字符 点 并且仅输入带有单个点的正数 例如 1 22 而不是 1 2 或 1 1
  • 使用 Bootstrap 粘性导航栏进行 Href 跳转 [重复]

    这个问题在这里已经有答案了 因此 我有一个带有下拉菜单的粘性导航栏 可以让我跳转到页面的不同部分 但是 当我跳转到不同的部分时 导航栏会覆盖我跳转到的 div 的开头 我检查了导航栏 它的高度为 58 带有填充和所有内容 如何将跳转偏移 5
  • ng2-bootstrap 分页和 bootstrap 表集成错误

    我正在尝试整合ng2 bootstrap 分页组件 http valor software com ng2 bootstrap pagination和引导表 我有一个简单的引导表 加载了 ngFor 指令 tr th col header
  • 使用 jQuery 将播放/暂停/结束功能绑定到 HTML5 视频

    我正在尝试绑定play pause and ended使用 jQuery 的事件但有一个问题 当我右键单击视频并选择播放或暂停时 图标会正确更改 当我单击播放按钮时 它会更改为暂停 但如果我单击暂停按钮继续播放视频 它不会更改为再次播放 谁
  • 使用 javascript/jquery 仅选择特定元素后面的文本

    如下面的代码片段所示 我有多个文本 div 其中有粗体部分 然后是换行符 然后是一段文本 我可以 find 粗体部分 但如何使用 javascript jquery 只获取粗体部分后面换行符后面的文本部分 div class thecont
  • 如何在angularjs中实现类似Excel的过滤器?

    我需要使用 angulajs v 1 为表实现简单的 Excel 类似 Filer 我遇到了困难 请帮助我 我在下面添加了我的代码片段 我想在选中复选框并单击 确定 按钮后在表中显示过滤后的数据 我正在使用模型执行此操作 但没有得到解决方案
  • Google App Engine 上的 NestJS 项目显示错误“无法写入文件”&&“EROFS:只读文件系统”

    当我在 Google App 引擎上部署 NestJS 项目时 我正在努力解决如下错误 错误 TS5033 无法写入文件 workspace dist properties dto property filter dto d ts EROF
  • 在智能手机上选择尺寸为正常尺寸

    在我的网络应用程序中 我创建了一个选择size 5 正确显示 您可以从图像中看到 当我在移动设备上打开应用程序时 我得到的是这个维度 您如何看到尺寸不正确 我通过代码而不是CSS设置尺寸 我再说一遍 这在桌面上有效 但在移动设备上不起作用
  • 可以用html渲染图像吗?

    我可以控制从文本文件获取 html 并在网页中呈现该 html 的页面 现在它必须在某处添加图像并引用该图像 src 我想知道我们是否可以与其他 html 代码一起渲染图像 这可能吗 是的 你需要一个数据 URI 方案 http en wi
  • MvvmCross Android 对话框以编程方式绑定

    我想使用 Android Dialog Cross UI 在我的 MvvmCross 项目中 我的第一个方法是使用 AutoViews 由于此功能还相当年轻 因此替代方案是在 touch 和 Droid 平台上实现对话框 现在我只是为 Dr
  • Bootstrap 3.3.5 中的多级下拉菜单

    我有以下 HTML 代码 并根据 Bootstrap 文档中的标记将其构建为我认为应该实现的方式 div class navbar collapse collapse ul class nav navbar nav li class act
  • 如何在 Symfony 4 表单的输入上添加占位符?

    在我的 Symfony 4 表单中 我尝试为我的输入获取占位符 我尝试了以下操作 但收到错误消息 表明这是不允许的 有什么想法我还能如何实现这一目标吗 gt add firstname TextType class label gt Vor

随机推荐

  • System.ObjectModel 警告 Xamarin 无法在 Android 上运行

    我们正在 Windows 8 1 环境中使用最新的 Xamarin 在 Visual Studio Enterprise 上运行 欢迎使用 Xamarin 示例 我们正在设法在 Windows 和 Apple 上构建和运行 但我们在 And
  • 无法编译 HTTP-Live-Video-Stream-Segmenter-and-Distributor

    我正在 Ubuntu 11 10 上运行 打算编译HTTP直播视频流段和分配器 https github com carsonmcdonald HTTP Live Video Stream Segmenter and Distributor
  • 电子表格函数中返回数组

    下面的代码返回一个数组 我想在电子表格中使用它作为 Excel 公式来返回数组 但是 当我这样做时 它只将第一个值返回到单元格 无论如何 是否可以返回与数组大小相同的范围内的数组 Function LoadNumbers Low As Lo
  • ./node_modules/bootstrap-loader/no-op.js 中出现错误

    我在我的应用程序中使用 Webpack 其中我将入口点创建为 index ts 并且我尝试使用 sass css bootstrap typescript 作为我的项目 webpack 中的资源来运行它 但我遇到了这些错误 bootstra
  • 如何从jetty-maven-plugin获取端口号?

    jetty maven 插件 7 x http wiki eclipse org Jetty Feature Jetty Maven Plugin 当用于集成测试时 在运行时动态查找可用端口 如何保存找到的端口号并在 Java 集成测试中使
  • 如何将sklearn决策树规则提取为pandas布尔条件?

    有这么多帖子像这样 https stackoverflow com questions 20224526 how to extract the decision rules from scikit learn decision tree关于
  • 如何处理与 hgsubversion 的合并?

    我正在尝试为使用 Subversion 的项目做出贡献 我使用 Mercurial 及其 hgsubversion 扩展来克隆存储库 我的工作发生在功能分支上 如何使功能分支与默认分支 hgspoke 又名主干 svnspoke 上发生的事
  • Spring Boot RestController,错误状态响应主体,错误消息为空

    在我的 Spring Boot RestController 上 我想通过抛出自定义异常来将自定义错误消息传递到响应正文 我正在遵循指南https dzone com articles spring rest service excepti
  • 将 log4net 与 WebApi 结合使用 - 在整个实例中保持相同的相关 ID

    我有一个 LoggingHandler 类 用作消息处理程序来记录 使用 log4net 请求和对我的 WebApi 的响应 public class LoggingMessageHandler DelegatingHandler publ
  • 在 Google 日历中设置事件颜色

    使用谷歌日历API http code google com apis calendar 我可以成功add http code google com apis calendar data 2 0 developers guide dotne
  • Dealloc 被调用两次?

    解决 感谢孤独枪手 这个问题是由于在释放许多代表之前没有将其设置为零而造成的 这是一个奇怪的 我熟悉基本的内存管理 但我认为我所看到的有些不寻常 这是一些背景 我有一个 NavigationController 来处理以下 ViewCont
  • “Binding”类型的 DependencyProperty 未更新

    我在创建 Binding 类型的 DependencyProperty 时遇到问题 其他类型工作正常 如果我使用绑定填充它们 它们就会成功解析 在我的场景中 我想获取原始绑定 以便我可以使用它来绑定到子对象的属性 这与 DataGrid 处
  • 相对于视图的CGPoint

    考虑一个屏幕点 CGPoint 和一个视图 UIView 它位于视图层次结构内部的某个位置 它可以是其他视图的子视图 如何将点转换为相对于视图坐标的点 首先 将该点从屏幕坐标转换为主窗口的坐标 UIWindow mainWindow UIA
  • 分配新值后将 ObservableCollection 绑定到 DataGrid

    这似乎是一个简单的问题 但我无法让它发挥作用 我有一个具有以下属性的用户控件 public ObservableCollection
  • 仅当 IP 地址获得批准时才允许用户访问页面

    如何制作一个 HTML 和 CSS PHP JavaScript 文档 只允许页面上的某些 IP 地址 我不是问 how 使用 PHP 查找 IP 地址 但如何允许基于 IP 地址访问页面 把它放在你的 php 文件的顶部并更新allowe
  • 用于创建断开连接的数据库应用程序的最佳基于 .NET3.5 的策略

    我的要求是 相对较小的数据库 25 30 个表 每个表有 4 5k 行 4 5 个用户在其笔记本电脑上拥有自己的本地数据库副本 在需要时或一天结束时进行同步 免费解决方案 正如我为 NFP 组织进行的设置一样 过去几天我一直在研究各种选择
  • 如何调试肉桂小程序?

    我想写一个肉桂小程序 这些都是基于 JavaScript 的 我希望编写的代码更改服务 打开和关闭它们 类似于WebDeveloper菜单小程序 https bitbucket org infiniteshroom cinnamon web
  • 仅保留 git 中文件子集的提交

    我想实现以下目标 保留我选择的文件的所有更改历史记录 或提交 有些文件被重命名 有些文件也从其他目录移动 我想删除与我从 git 日志中选择的文件无关的所有提交 我尝试了不同的方法 例如this https medium com ayush
  • 如何通过http打开远程sqlite数据库?

    是否可以通过 http 打开 sqlite 文件 我只需要读取数据库 并希望我可以做类似的事情 var dbFile File new File http 10 1 1 50 project db sqlite sqlConnection
  • Angular View 绑定未使用简单布尔值更新

    再见 这可能是一个菜鸟问题 但我无法让它发挥作用 我有一个简单的服务 可以切换布尔值 如果布尔值为 true 则活动类应该出现在我的 div 上 如果为 false 则没有类 就这么简单 但是布尔值已更新 但我的视图没有对此做出反应 我是否