问题标签 [state-management]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何从登录状态导航到抽象仪表板状态?
https://plnkr.co/edit/ByatrCzdUJfAV3oc8XPq?p=preview
^ 在第 10 行,如果您放回abstract:true
密钥,您将看到标签视图出现在此 plnkr 应用程序中。
但是我的问题是,在我的真实应用程序中,它不会让我使用abstract
密钥,因为您首先从一个login
状态开始,然后转换到该dashboard
状态。
抽象键允许我将附加tags
状态添加为dashboard
.
当我在那里拥有该密钥并登录我的真实应用程序时,这是我得到的错误:
错误:无法转换到抽象状态“仪表板”
plnkr代码:
真实应用
登录控制器:
状态常量:
仪表板状态对象:
登录状态对象:
仪表板.html 模板
应用程序.js
javascript - 如何将 $state 变量传递给其他 2 个同级 $states?
Plnkr:https ://plnkr.co/edit/Brmcxd2LjGVJ6DXwuJtF?p=preview
建筑学:
$login
-> $container
(包含$dashboard
和$feed
),包含dashboard
:$tickers
、、$tags
和组件。$viewHeader
$socialMedia
目标:
tags
需要进行通信并将标签对象发送到viewHeader
andsocialMedia
状态。
预期的:
之后Login,在标签列表中选择一个按钮应将其发送tag
到ViewHeader和SocialMedia状态/组件。
结果:
之后Login,在标签中选择一个按钮并转到 $statedashboard
以用于ViewHeader和SocialMedia刷新,但视图模型变量{{ term }}
不会使用任一组件中的适当标签进行更新。
设计说明:
我试图通过混合状态、组件、兄弟组件和视图来解决的问题是,当任何状态发生变化时,应用程序中的每个组件都会刷新/重新启动。$state.go('dashboard'...
这并不理想,我想要的是确保只有需要刷新、刷新的组件。
IE:当我选择Ticker或Tag时,我不希望Feed组件每次都刷新。但是,用户应该能够在Feed组件中执行操作,并且它将更新所有其他组件。
这就是我创建一个container
状态来同时保存dashboard
和feed
状态的原因。最初我拥有所有dashboard
状态,并且任何时候$state.go('dashboard'
发生feed
组件也会刷新。如果有更好的方法来解决这个问题lmk!:)
PS:开始学习使用 ui-router 进行状态管理,以消除对 $rootScope 的依赖。到目前为止,我的真实应用程序要稳定得多,但是具有每个组件刷新/重新启动的烦人功能。
在下面的屏幕截图中,我可以清楚地看到正确tag
的值被传递到正确的 $states 中,但尚未{{ term }}
更新。
代码片段(Plnkr 中的完整代码)
app.container.html(容器状态)
dashboard.html(仪表板状态)
^ 我使用<div ui-view>
上面的来加载标签状态的原因是,到目前为止,这是我可以初始化标签模块并显示来自代码组件的标签列表的唯一方法。
股票代码组件控制器:
^ 上面的 <--- 允许标签状态加载标签组件元素并根据ticker的状态连接标签列表
标签列表中的点击功能:
社交媒体控制器:
viewHeader 控制器:
奇怪的组件加倍
刚刚注意到这一点,在单击一个标签并打破了 social.component 内部之后。看起来仪表板组件正在重新渲染标签组件一瞬间:
更新,通过{ refresh: true }
在标签中添加 $state.go 解决了这里的问题。但是请注意,这仍然没有解决我最初的任务,即阻止 feed.component 刷新。所以最终会使用服务。
javascript - 命名视图 $states 不呈现模板
https://plnkr.co/edit/9mFkN7oScYkKpPC0l57i?p=preview
预期的
单击Login并导航到该container
状态后。dashboard
命名的视图feed
应该呈现它们的模板。
结果
dashboard
用于和feed
不渲染的模板,也不渲染到其控制器日志中的日志。
登录状态的routerApp
随着container
模块注入。
容器模块/配置和视图状态
下面我有容器的默认视图及其模板和控制器,以及其他 2 个命名视图dashboard
和feed
. 但是,在单击Login并进入container
状态后,所有命名视图都不会在标记中呈现。
最后是 container-template.html
下面你可以看到命名视图dashboard
和feed
,但是它们的模板和控制器不渲染/初始化。
javascript - 导航到状态将索引 ui-view 替换为 state 的组件,而不是父模板内的命名 ui-view
Plnkr:https ://plnkr.co/edit/TrjrZ4vQlOjxyjc1mKQt?p=preview
预期的
选择代码后Login,应在代码列表右侧的称为标记范围的橙色区域中显示标记列表。
应用程序的外观
结果
选择一个 Ticker 将激活标签状态,但是标签模板将替换顶级索引 ui-view。而不是在 Tickers 模板中呈现标签<div ui-view="tags@tickers"></div>
模板。
应用程序的外观
建筑学
登录后,您将被发送到container
有 2 个视图的状态:dashboard
和feed
。
我觉得我的问题是我没有激活 adashboard state
也没有激活 a tickers state
if 那么在我当前的体系结构中如何做到这一点?
仪表板模板 代码组件 代码模板
selenium - 我们如何在硒中保持状态?
我是硒新手,我对硒的状态管理有一个疑问。
我有一个包含一些数据的 Web 表单 (Form1)。
我想在当前浏览器(Mozilla)的实例中使用新选项卡传递相同的数据(当 Form1 选项卡关闭时)
- 当前浏览器(Mozilla)关闭时在新浏览器(chrome)中。
谢谢!!!
vue.js - Vuex - 哪些数据应该流经商店?
我了解商店是什么以及 Vuex 的目的,但现在我在想:
“我实际上在商店里放了什么?”
我正在构建的 SPA 处理大量数据。最初我只投入“主要”的东西。然而,这样有错吗?是否应该store
实际保存SPA 的所有数据?如果我在网页上显示数据,是否应该通过store
?
android - 在 Rxjava 上管理线程
我正在尝试实现 Redux 模式来管理 Jake Wharton 演示后的状态:http: //jakewharton.com/the-state-of-managing-state-with-rxjava/ 我希望流中的所有内容都运行在后台线程并在 AndroidMainThread 上接收输出。但是在当前设置下,我的订阅者会抛出一个异常,即我正在除 AndroidMainThread 之外的另一个线程上操作 UI。提前致谢。
合并事件转换器:
堆栈跟踪:
javascript - 通过 React 中的输入元素更新对象中的嵌套状态
我正在创建一个允许更新订单的表单。输入字段必须填充我渲染的每个对象的当前状态,并且我希望能够编辑输入字段。我已将我的代码简化为一个输入字段,并相信我能够使用以下代码完成我正在尝试的大部分工作——
在父组件级别设置的状态是一个对象数组,我传递给的对象的数据结构renderEditOrderForm()
具有以下结构——
其中data: Object
包含我要更改的键值对,在这种情况下,name
嵌套在data: Object
(上图)下的键,我想在更新/编辑后将其放回数组中。我可以稍微更新订单的名称,但是当我尝试更新它时(例如,输入“x”),对象现在具有这种结构——
我可以凭直觉知道这[e.target.name]: e.target.value
可能是罪魁祸首,但是我完全不知道应该如何访问嵌套的键name
-data: Object
我已经尝试过e.target.data.name,但是这给了我undefined
并尝试过多种其他组合。在不使用 Redux 的情况下(不幸的是,由于时间限制没有时间学习),有谁知道我如何访问/定位密钥name
以更新嵌套的data: Object
?
javascript - vue中的中间状态或类似的东西
我试图让一些文本水平滚动,垂直滚动或保持固定,具体取决于当前文本需要的空间。如果它适合容器,它应该保持固定。如果没有,它应该移动。我事先不知道文本,我有动态容器大小。
我正在尝试检查文本是否溢出,并且它在组件的安装状态下工作正常。我通过比较 scrollheight 与 clientheight 和 textcontainer 大小与内容容器大小的组合来做到这一点。
只要文本适合容器,更新也有效。问题是在动画和非动画状态之间切换。代码中的 data 属性包含 font-size 和其他属性,以在逻辑上决定要使用的类和文本样式。
我需要解决的问题是能够让文本恢复到非动画状态。然后,每次文本、字体大小或容器大小发生变化时,我都可以使用在挂载状态下使用的例程。
状态:无滚动(非动画):
水平滚动(动画):
如果文本水平滚动,则 scrollWidth 会变得非常宽,并且无论我对影响数据进行什么更改,它都会保持这种状态。因此我无法退出滚动模式。
如果我进入 devtools 并手动将标记编辑回无滚动状态,代码将再次起作用。但我不知道如何以编程方式到达那里。
boolean - Vue.js - 使用 vuex 打开/关闭动态侧边栏思想不同的组件(导航栏到侧边栏)
我正在尝试在我的网站上制作动态侧边栏,但菜单按钮位于另一个组件(导航栏)中。如何让他们通过 vuex 相互通信?看,我知道如何在同一个组件中做到这一点,但我在这里努力将这个布尔状态从导航栏传递到侧边栏。