Angularjs 做角度';s内置服务与breezejs合作?
我正在测试角度/微风组合,我遇到 RangeError:超出了最大调用堆栈大小 当我使用angular的Angularjs 做角度';s内置服务与breezejs合作?,angularjs,breeze,Angularjs,Breeze,我正在测试角度/微风组合,我遇到 RangeError:超出了最大调用堆栈大小 当我使用angular的$watch和filter:searchText以及其他我假设所有属性都被检查的函数时,也会出现类似的错误 我很好奇我做错了什么。或者如果数组包含太多属性或其他内容 例如: <input type="search" ng-model="searchText" /> <div ng-repeat="station in stationsList | filter:searchT
$watch
和filter:searchText
以及其他我假设所有属性都被检查的函数时,也会出现类似的错误
我很好奇我做错了什么。或者如果数组包含太多属性或其他内容
例如:
<input type="search" ng-model="searchText" />
<div ng-repeat="station in stationsList | filter:searchText" class="view-list">
<p>{{station.name}} </p>
</div>
{{station.name}}
其中,站点是从类似于breeze.EntityQuery.from(“站点”)的查询中获取的。
编辑:
目前我正在这样做:
工作很好,但是控制器中有更多的代码
编辑2:
这也是一个,但是循环。如果你看一个breeze实体,你会发现它不仅仅是一个典型的javascript对象,而是隐藏了backingStore和entityAspect下的所有内容。使用Chrome中的AngularJS Batarang,您可以更轻松地看到我所说的字段爆炸 当您尝试观察一个实体时,Angular所做的第一件事就是使用它自己的函数复制对象。这是一个递归函数,它试图探测entityAspect的深度 不幸的是,除了你已经发现的方法之外,我不知道还有什么其他方法。我只是在我想要的每个单独的属性上手动设置了一个手表,前面提到了对象相等 编辑:我不能评论,所以为了让它更清楚,这就是我手动设置它的意思,如下所示:
$scope.foo.integer1 = 4
$scope.foo.string2 = 'bar'
$scope.$watch('[foo.integer1, foo.string2]', someFunctionToHandleChange, true
不确定为什么在所有情况下使用过滤器都会更好?@Hawk-即使您没有遇到实体循环引用,在角度上过滤(或查看)列表中所有对象的所有属性也是不明智的。所以这实际上是一个角度的问题,与微风有关 如果您打算对多个属性进行筛选,我建议使用第一个链接中所述的筛选功能。我个人不会像@Gendal建议的那样单独观看房产。也许s/he有一个用例,在该用例中,观察单个属性比过滤器更可取;我想不出这种情况 是的,这是更多的代码。人生就是这样