- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个动态 orderBy 函数,用于 ng-repeat。我从另一篇文章中得到了帮助。他创造了一个笨蛋,效果很好。但是,当我与项目集成时,它没有按预期工作。我也使用所有引用文献的相同版本创建了 plunker。这是帖子的链接。 link to stackoverflow post
我已经将范围缩小到正在发生的事情。在页面加载时,您会看到空数组。
这是我应用过滤器的时候。
所选过滤器正在应用于阵列。但是 ng-repeat 没有发生任何变化。
这是删除所选过滤器后的结果。请注意,对象数组已将 更改为正确的值。但通过观察组功能中的断点,我意识到它没有捕捉到模型中的变化。
这是我重新应用相同过滤器时的情况。观察组获取模型更改并将其应用到 orderBy 数组,该数组应该是一个空数组。
我进行了三次检查,以确保 javascript 引用是相同的版本。但我不知道如何解决这个问题,因为 plunker 工作得很好?
这是我项目中的实际代码
mapSidebarCtrl.orderBy = [];
mapSidebarCtrl.orderOptions = [{
name: 'Subdivision',
value: false,
fields: ['properties.name']
}, {
name: 'Total LOE',
value: false,
fields: ['metrics.loe.total']
}, {
name: 'Inventory',
value: false,
fields: ['metrics.inv.fut', 'metrics.inv.vdl', 'metrics.inv.mod', 'metrics.inv.uc', 'metrics.inv.fin', 'metrics.inv.total']
}];
$scope.$watchGroup(['mapSidebarCtrl.orderOptions[0].value', 'mapSidebarCtrl.orderOptions[1].value', 'mapSidebarCtrl.orderOptions[2].value'], function () {
angular.forEach(mapSidebarCtrl.orderOptions, function (x) {
if (x.value) {
[].push.apply(mapSidebarCtrl.orderBy, x.fields);
}
});
});
SelectedTerritoryService.subscribeSelectedTerritorySubdivisions($scope, function selectedTerritorySubdivisions(event, args) {
mapSidebarCtrl.territorySubdivisions = args
});
html
<div class="row">
<div class="col-xs-12">
<div class="panel-body p-xxs">
<div class="row">
<div class="col-xs-12">
<div class="btn-group">
<label class="btn btn-default btn-xs" ng-repeat="option in mapSidebarCtrl.orderOptions" ng-class="{ active: option.value }" ng-click="option.value = !option.value">
<i class="fa" ng-class="{ 'fa-sort-alpha-desc': option.value, 'fa-sort-alpha-asc': !option.value }"></i> {{ option.name }}
</label>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="panel-body p-xs m-t-sm overflow" ng-style="resizeWithOffset(300)" resize>
<div class="panel-body p-xxs"
ng-repeat="subdivision in mapSidebarCtrl.territorySubdivisions | orderBy: mapSidebarCtrl.orderBy">
<a ng-click="mapSidebarCtrl.selectSubdivision(subdivision.properties.id);">
<div class="row">
<div class="col-xs-12">
<div class="pull-right text-right">
<img src="https://placeimg.com/75/75/any">
</div>
<h5 class="m-b-xs"><span>{{subdivision.properties.name}}</span></h5>
<div class="m-b-xs"><span>{{subdivision.properties.status}}</span></div>
<div class="badges"> <i class="fa fa-star text-warning"></i> <i class="fa fa-star text-warning"></i> <i class="fa fa-star text-warning"></i> </div>
</div>
</div>
</a>
</div>
<pre><code>{{ mapSidebarCtrl.orderOptions | json }}</code></pre>
<pre><code>{{ mapSidebarCtrl.orderBy | json }}</code></pre>
</div>
最佳答案
您忘记清除 $watchGroup
回调函数中的数组。
$scope.$watchGroup(['vm.orderOptions[0].value', 'vm.orderOptions[1].value', 'vm.orderOptions[2].value'], function() {
vm.orderBy = []; // <=- clear/reset the array
angular.forEach(vm.orderOptions, function(x) {
if (x.value) {
[].push.apply(vm.orderBy, x.fields)
}
});
});
关于javascript - Angular 观察组未能始终如一地接收模型变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34386458/
嘿伙计们。 实现背景变化(基本上是幻灯片放映)和过渡效果的常见方法有哪些。我想每隔一段时间改变complte文档背景。 我是一名 ASP.net 开发人员,并且希望大部分内容都可以在 ASP 中实现。
也许,指针已经在修改过程中指向 auto_ptr 的常规指针指向 unique_ptr 和 shared_ptr 我只是想知道已经开发出来的新型指针是否完全覆盖了旧版本(或者您可能认为存在内存泄漏问题
我使用 Android Studio 构建 Android 应用。 我的问题是:当 fragment 改变时,应用程序崩溃。 控制台输出[控制台] 01-06 18:35:21.952 27756-
****澄清**我做了这个 [Fiddle] ( http://jsfiddle.net/sggPv/10/ ) 来帮助澄清情况。 该脚本起初适用于两个表格,但随后当您点击 slider 并将新表格加
我有图标,单击它会将新的 div(列)添加到 div 容器。问题是,当新的 div(列)出现时,按钮不会向右移动。是否可以以某种方式仅在 div 内添加 position:fixed? 这是我的几个屏
我是 Java 新手,继承了现有的 Android 应用程序。原始开发人员选择使用常量接口(interface)。 我的问题是我需要更改其中一些常量来编译生产应用程序与开发应用程序。如果我手动修改一些
在 Apple developer Document 中,我在 UIColor 中发现了一些新东西。 If your app was linked on or after iOS 10 and whe
我没有经常使用 ShareKit,但我只想拥有三个共享选项:Facebook、Twitter 和电子邮件。 ShareKit 提供了更多选项,包括更多按钮。但是,我不想要“更多”选项,只想要三个。 在
我正在构建一个 JS 库,其中一个用例要求我在 DOM 更改时触发一个事件,特别是如果它是一个单页应用程序,例如:github search bar 经过一番研究,我遇到了MutationObserv
我已经设法编写了一个代码来检测任何工作表中特定单元格的值变化,但我一直在努力构建检测和跟踪范围(值)变化的东西。 例如,如果用户决定复制和粘贴某个范围的数据(假设超过 1 个单元格),它不会被宏捕获。
使用 ffmpeg ,我们可以对音频电平进行多少控制?例如,我想在程序的时间轴上映射一个“M”形: t0 - t1 : fade in from 0 to 1 t1 - t2 : play at fu
使用 jQuery 1.7.1,我尝试为下拉列表上的更改事件创建一个事件处理程序。下拉列表会动态添加到 DOM 中。似乎在大多数浏览器上都能很好地工作,但是哦,奇怪的 IE8 想要变得困难。有解决方法
我想制作一个具有可选边框大小的自定义控件。请参阅下面的代码。边框绘制在非客户区,其宽度可以是 0、1 或 2 像素。我已经在 WM_NCPAINT 中成功完成了边框绘制。问题是,在更改控制边框大小的属
我知道这个问题之前已经被问过,而且我实际上已经找到了一些我已经实现的解决方案。不幸的是,我没能得到我想要的。 我以前没有做过AngularJS,我想做的是: 检测网址何时更改 根据网址更改的内容进行一
我有一个 auto-carousel 指令,它循环访问链接元素的子元素。 但是,子级尚未加载到 DOM 中,因为它们的 ng-if 表达式尚未解析。 如何确保父指令知道其 DOM 树已发生更改?
我有一个流程可以通过内容提供商从数据库中获取数据。 fun getDataFlow(): Flow { return flow { emit(Result.Loading)
我有一些有效的代码,但有时它只是“跳转”到其他文本而不考虑间隔。 该代码基本上按时间间隔更改标题的文本。 var text = ["text1", "text2", "text3","text4","
我正在尝试将 onCLick 监听器添加到我的 PreferenceScreen 上的开关,但它不起作用。我尝试了 Java 教程中的代码并将其转换为 Kotlin,但由于某种原因它无法正常工作。 这
我们目前正在尝试升级我们的程序使用的 ffmpeg 版本。跳跃很大,因为我们目前使用的是 ffmpeg 0.8,最新版本是 1.2。 在这些测试中,我使用的是(让我说)我发现的令人惊叹的软件包 her
我有一个流程可以通过内容提供商从数据库中获取数据。 fun getDataFlow(): Flow { return flow { emit(Result.Loading)
我是一名优秀的程序员,十分优秀!