- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用ui-router
来管理项目管理部分的状态。管理部分有一个可以导航类别的地方。在此类别管理部分中,我尝试构建一个面包屑链接系统。
我的问题是我使用 $scope 变量来保存当前所选子类别(或面包屑)的名称,但它不会保存新值。它很快插入新值,但随后恢复到原始的“顶级”类别。
子类别是类别的子类别,在 ui-router 中如下所示:
.state('admin.category', {
...
},
.state('admin.category.subcategory', {
...
},
category.html(“0”表示所有类别的顶级)
<a ui-sref="admin.category.subcategory({categoryId: 0})" ng-click="breadCrumbManager(0)">View Categories</a>
<div ui-view></div>
subcategory.html(breadCrumbLinks 是不会保存新值的 var)
<div>
{{breadCrumbLinks}}
<ul>
<li ng-repeat="category in categories">
<a ui-sref="admin.category.subcategory({categoryId: category.id})" ng-click="breadCrumbManager(category.id)">{{category.title}}</a>
</li>
</ul>
<div ui-view></div>
AdminController(名称切换发生的地方)
$scope.breadCrumbManager = function(categoryId) {
if (categoryId === 0)
{
console.log("top level");
$scope.breadCrumbLinks = "Top Level"; //keeps switching to this!
}
else
{
categoryService.getCategoryName(categoryId).then(function(link){
console.log(link); //logs correctly
$scope.breadCrumbLinks = link;
//$scope.breadCrumbLinks = "sub level";
});
}
}
新分配的面包屑名称正确记录到控制台,并且在页面加载时没有对此函数的额外调用,所以我不明白为什么它会恢复回来。如果发生这种情况,控制台中应该有一个日志条目,但没有。此外,显示类别的系统运行良好。
另外,这个函数是通过 ng-click 访问的,每个链接都有它自己的值。我不能同时点击两个链接。真的被难住了。
*** 编辑****
我现在已经注释掉了获取类别名称的部分。现在,这是一个简单的 if 语句,用于记录 CategoryId 以及从何处调用它:
$scope.breadCrumbManager = function(categoryId) {
if (categoryId === 0)
{
$scope.breadCrumbLinks = "Top Level";
console.log(categoryId + " is top level");
}
else
{
$scope.breadCrumbLinks = "bottom Level";
console.log(categoryId + " is bottom level");
/*categoryService.getCategoryName(categoryId).then(function(link){
$scope.breadCrumbLinks = link;
});*/
}
}
它仍然显示“顶级”!如果我在category.html
页面上手动将0
更改为实际类别ID,它将显示“底层”。这让我相信它与从 admin.category.subcategory
路由调用 breadCrumbManager()
函数有关。
那是什么?我不知道。函数正在被调用,数据是正确的,但 Angular 不会更新变量。我想我会放弃 Angular,直到 2.0 到来。我在这个项目中遇到的 80% 的问题都是试图找出像这样的 Angular 怪癖。
最佳答案
将面包屑数据抽象到服务中解决了这个特定问题。为了完成这项工作,它仍然感觉像是在应用程序中添加了不必要的级别。我将以下内容添加到我的服务中:
sailsCommerceApp.factory("categoryService", ['$http', '$q', function($http, $q) {
var breadCrumbs = "Default";
....
addBreadCrumb: function(categoryId) {
if (categoryId == 0)
{
breadCrumbs = "Top Level";
}
else
{
breadCrumbs = "Bottom Level";
}
},
viewBreadCrumb: function() {
return breadCrumbs;
}
将 Controller 修改为如下所示:
$scope.breadCrumbManager = function(categoryId) {
categoryService.addBreadCrumb(categoryId);
$scope.breadCrumbLinks = categoryService.viewBreadCrumb();
}
关于javascript - Angular 变量更改后恢复为原始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30359790/
有什么方法可以恢复删除的元素吗? 这是我删除元素的代码 myFunction() { var width = window.innerWidth; var February = doc
我有一个 TokuDB 表,由于某种原因缺少 ***_status.tokudb 文件。 我还不确定文件是否由于 TokuDB 崩溃而丢失。 问题是: 有没有办法从主要文件和关键文件(我可以从 tok
我正在 Windows 7 (x86) 上运行带有 Workbench 6.3.8 的 32 位 MySQL Server 5.7.22 本地实例(必须选择 32 位版本 - 所以,较旧的版本)。 我
1、备份 <% SQL="backup database 数据库名 to disk='"&Serve
1、ASP中怎么实现SQL数据库备份、恢复! 答:asp在线备份sql server数据库: 1、备份 <% SQL="ba
我在 R 中使用 stats::filter 函数来理解 R 中的 ARIMA 模拟(如在函数 stats::arima.sim 中)和估计。我知道 stats::filter 将线性过滤器应用于向量
我已经浏览了示例应用程序的文档和代码,并发现 files/objectbox/objectbox/data.mdb 是存储所有数据的默认文件。 假设我的理解是正确的,我有几个问题找不到文档: 我想在我
为了恢复非续订订阅类型的 InAppPurchase,我已经实现了服务器来处理此问题。 但在购买过程中,iTunes 有时不会要求用户验证他们的卡详细信息, 在这种情况下,它会在后台发送应用程序并显示
我的问题是寻找cocos2d游戏期间暂停/恢复状态(包括所有需要保存的数据信息)的设计解决方案。 包括但不限于以下情况: 1).用户选择退出,然后弹出一个对话框供用户选择“直接退出”、“暂停”; 2)
在 Mercurial 中,我有一个旧的变更集,除了对单个文件的更改外,它都很好。我将如何恢复对该单个文件的更改? 即使只是能够在上一个变更集中查看文件的状态也会很好,然后我可以剪切和粘贴。 我的 M
我的一项职能遇到了困难。我想做的是计时器在页面加载后立即启动,并且只有一个带有启动/恢复的按钮。我无法在代码中找出需要更改功能的位置。有人可以帮助我吗?谢谢! HTML: , Javascr
我正在阅读Scrap your type classes 。这为类型类提供了替代方案。然而,我被Paul Chiusano的评论所困扰。其中讨论了恢复 do 表示法 语法。 坦白说,我无法理解 ret
当 OrientDB 因某人重新启动机器而非正常关闭时,OrientDB 最终会处于数据恢复失败的状态。对于如何从这种不正常的关闭中正常恢复有什么建议吗?我们正在寻找系统在断电期间能够自行恢复的方法。
我正在构建一个 Electron 应用程序,如果发生崩溃,它必须重新加载渲染进程窗口。 目前我可以从主进程重新启动应用程序 app.relaunch(); app.quit(); 但我无法检测到窗口崩
我有 3 个 Activity ,比如说 MainActivity、 Activity 2 和 Activity 3。 在 MainActivity 中,我有一个按钮(开始/停止),当我单击此按钮时,
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
Twilio 是否支持暂停和恢复内容播放。换句话说,我有相当长的文件将播放给调用者,并且我正在尝试找到一种方法来实现暂停和恢复功能。在播放某些内容的过程中,我希望用户能够按数字暂停,然后再次按数字从音
我已经提交了 A、B、C、D 和 E。我意识到在提交 B 中发生了一些非常糟糕的事情,所以我想回到 A,这次正确地进行之前搞砸了 B 的更改,然后重新应用 C 、 D 和 E 自动。 您可能想知道为什
我的一个文件被“标记为文本”,图标也发生了变化。实际上这是一个 PHP 文件。我尝试过使用 Help -> Find Action -> Mark As 尝试将其恢复为 PHP 突出显示,但它不起作用
我有一些 SSE 程序,可以将循环中的内存归零,当指针未对齐时,它会引发 SIGSEGV进入我的处理程序。我可以在此类处理程序中获取更多信息吗例行公事,现在我不知道它是在哪里完成的,我也可以吗以某种可
我是一名优秀的程序员,十分优秀!